Git推送导致“身份验证失败”

时间:2013-07-15 16:34:05

标签: git github

我一直在使用Github一段时间,到目前为止我对git addgit commitgit push一直没问题。我突然发现一个错误:

  

致命:身份验证失败

在终端中,我克隆了一个存储库,处理了一个文件,然后我使用git add将文件添加到提交日志中,当我执行git commit时,它运行正常。最后,git push要求输入用户名和密码。我正确地把它们放进去,每当我这样做时,都会说同样的错误。

有没有人知道这个问题的原因是什么以及如何解决它?

.git/config的内容是:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = http://www.github.com/######/Random-Python-Tests
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[user]
        name = #####
        email = ############

38 个答案:

答案 0 :(得分:905)

  

如果您在Github帐户中启用了双因素身份验证   将无法使用您的帐户密码通过HTTPS推送。代替   您需要生成个人访问令牌。这可以在   您的Github帐户的应用程序设置。使用此令牌作为您的   密码应该允许您通过HTTPS推送到您的远程存储库。   像往常一样使用您的用户名。

https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/

如果设置为https:

,您可能还需要更新存储库的来源
git remote -v 
git remote remove origin 
git remote add origin git@github.com:user/repo.git  

答案 1 :(得分:295)

请尝试以下步骤编辑或删除已保存的凭据:

  1. 点击开始
  2. 类型:凭据管理器(在Windows 10上,这是在“开始 - >设置”下。然后搜索“凭据管理器”)
  3. 请参阅Windows Credentials Manager快捷方式,然后双击它以打开该应用程序。
  4. 应用程序打开后,单击Windows Credentials选项卡。
  5. 找到要删除/更新的凭据,它们将以“git:”开头,并且可能以“ada:”开头。
  6. 点击凭据条目,它将打开条目的详细信息视图。
  7. 根据需要单击“编辑”或“删除”并确认。
  8. 洗涤,冲洗,必要时重复。
  9. enter image description here

答案 2 :(得分:56)

这对我有用,它还记得我的证书:

  1. 运行gitbash

  2. 指向repo目录

  3. 运行git config --global credential.helper wincred

答案 3 :(得分:53)

首先,您可以确保使用正确的网址:

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

然后,如果它之前正在工作,并且它没有要求您使用用户名,那一定是因为您已将凭据(登录/密码)存储在$HOME/.netrc文件中,因为{{3} }。您可以仔细检查这些设置,并确保您的代理(如果有的话)没有更改。

如果仍然无效,您可以切换到ssh网址:

git remote set-url origin git@github.com:zkirkland/Random-Python-Tests.git

但这意味着您已在explained here发布了自己的ssh公钥。

答案 4 :(得分:48)

您最近是否为git帐户更改了密码 您可以使用git push选项

尝试-u
git push -u origin branch_name_that_you_want_to_push

执行上述命令后,它会要求输入密码的密码

希望它可以帮到你

答案 5 :(得分:29)

如果您在输入正确的密码和用户名时发现身份验证错误问题,那就是git问题。要在计算机中安装git时解决此问题,请取消选中enable git credential manager enter image description here

答案 6 :(得分:25)

我认为由于某种原因,GitHub期望URL不具有子域名www。当我使用(例如)

git remote set-url origin https://www.github.com/name/repo.git

它提供以下消息:

remote: Anonymous access to name/repo.git denied
fatal: Authentication failed for https://www.github.com/name/repo.git

但是,如果我使用

git remote set-url origin https://github.com/name/repo.git

它完美无缺。对我来说没有多大意义......但我想请记住不要将www放在GitHub存储库的远程URL中。

另请注意,GitHub存储库网页上提供的克隆URL不包含www。

答案 7 :(得分:25)

基本上我的凭证已过期,我面临上述问题。

以下2命令帮助了我:

git config --global --unset credential.helper

git config credential.helper store

下次尝试推送时,它会要求您提供凭据。

有关用户名和密码的安全和不安全存储的更多详细信息,请遵循以下准则:

https://git-scm.com/docs/git-credential-store

https://git-scm.com/docs/git-credential-cache

答案 8 :(得分:21)

如果您更改git服务帐户(Git)的登录名或密码,就会发生这种情况。您还需要在 Windows凭据管理器中进行更改。在Windows搜索菜单中键入“凭据管理器”。

Windows凭据管理器-> Windows凭据,然后在“通用凭据”下编辑您的git密码。

答案 9 :(得分:11)

嗨,我遇到了同样的错误,我尝试了本页中提到的所有解决方案,但没有用。最后,我找到了解决方案,于是想到了发布它。如果我在任何地方都不对,请纠正我。如果有时您的系统密码最近随时更改,则会出现此类错误。它将尝试从旧密码进行验证。 所以请按照以下步骤操作

  1. 转到控制面板
  2. 点击用户帐户
  3. 凭据管理器
  4. 转到“管理Windows凭据”
  5. 转到常规凭据
  6. 展开git服务器标签
  7. 单击从库中删除
    • 您还可以单击“编辑”并直接更改存储在此处的密码。

答案 10 :(得分:10)

我遇到了 " $ git fetch 致命:' http://...."身份验证失败; 我的Windows密码过期后被更改。使用Windows凭证管理器进行多次提取,重新启动甚至重新安装git都没有帮助。

令人惊讶的是,正确的答案在这里的评论中,而不是在答案中(其中一些非常奇怪!)。 您需要转到控制面板 - >凭据管理器/ Windows凭据 并更新git的密码:http://yourrepoaddress

答案 11 :(得分:9)

就我而言,我最近更改了Windows密码,并为git相关操作(拉,推,提取等)配置了SSH密钥,在遇到“致命:身份验证失败”错误后,我更新了密码在Windows凭据管理器(“控制面板” \“用户帐户” \“凭据管理器”)中,以git:...开头的所有项目,然后再次尝试,这次成功了!

答案 12 :(得分:7)

我不确定我做了什么来得到这个错误,但是这样做:

git remote set-url origin https://...

对我不起作用。但是:

git remote set-url origin git@bitbucket.org:user/repo

以某种方式工作。

答案 13 :(得分:6)

我遇到了同样的问题。我以这种方式设置了网址:

git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

我还从配置文件中删除了此条目:askpass = /bin/echo。 然后“git push”向我询问用户名和密码,这次它起作用了。

答案 14 :(得分:5)

我正在添加与Git链接的Bitbucket,不得不删除存储的密钥,因为这会导致致命错误。

要解决,我打开了命令提示符并运行

 rundll32.exe keymgr.dll, KRShowKeyMgr

我删除了负责登录的密钥,下次将文件推送到存储库时,系统会提示我输入凭据并输入正确的凭据,从而成功完成了推送。

答案 15 :(得分:5)

在尝试上述所有操作之前,请再次尝试git push,是的,它对我有效。

答案 16 :(得分:4)

答案 17 :(得分:3)

您好,我遇到了相同的错误,我尝试了本页中提到的所有解决方案,但没有用。最后,我找到了解决方案,于是想到了发布它。如果我在任何地方都不对,请纠正我。如果有时您的系统密码最近随时更改,则会出现此类错误。它将尝试从旧密码进行验证。 因此,请按照以下步骤操作:

  1. 转到控制面板
  2. 点击用户帐户
  3. 凭据管理器
  4. 转到“管理Windows凭据”
  5. 转到常规凭据
  6. 展开git服务器标签
  7. 单击“从库中删除”

    • 您还可以单击“编辑”并直接更改存储在此处的密码。

答案 18 :(得分:1)

对我来说,我忘记了我在Github.com上更改了密码,我的shell身份验证密钥链从未更新为新密码。从我的钥匙串中删除所有git然后重新运行git请求有助于解决问题,再次提示我输入新密码。

答案 19 :(得分:1)

我尝试了令牌验证方法,并使它能够工作约3次,并为此浪费了大约2个小时的时间。由于某些原因,它对我们公司而言效果不佳。

我的解决方案是将身份验证方法从HTTPS更改为SSH。这是Github指南(https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)。

创建SSH密钥后,请记住更改SSH地址的来源:

git remote add origin git@github.com:user/repo.git

答案 20 :(得分:1)

我在Windows上遇到了同样的问题。大多数时候,由于使用多个git帐户,我通常会面临这个问题。如果您在Windows上,请以管理员身份打开终端并尝试再次运行命令。确保您具有管理员访问权限。

答案 21 :(得分:1)

当我更新计算机密码时收到上述错误消息。 使用以下步骤重置我的 git 凭据:

转到控制面板 > 用户帐户 > 凭据管理器 > Windows 凭据。您将在列表中看到 Git 凭据(例如 git:https://)。单击它,更新密码,然后从 Git bash 执行 git pull/push 命令,它不会再抛出任何错误消息。

答案 22 :(得分:1)

同样的错误(Windows、Git Bash 命令行)。使用 https 会提示输入登录凭据,但会提示错误:

$ git pull origin master
fatal: Authentication failed for 'https://github.com/frmbelz/my_git_project.git'
$ git config -l
...
credential.helper=manager
...

$ git config --global --unset credential.helper
$ git config --system --unset credential.helper

git pull 现在提示输入用户名/密码提示。

答案 23 :(得分:1)

为了解决这个问题,为我解决的问题是我只是取消了初始提示,用我的bitbucket帐户打开了ssh,我输入了密码,一切都按预期工作。

答案 24 :(得分:0)

这样,我解决了GIT GUI和git bash中的拒绝访问问题。 SSH KEy

此SSH密钥已复制粘贴到GitHub访问令牌中。Access Token

对我来说,一切都很好,我也尝试了Windows Credentials Manager,但问题也没有解决。 然后突然,我从防火墙跳出来,这是背后的罪魁祸首。在我手动单击允许之后,我可以获取或推送到GitHub。

答案 25 :(得分:0)

我刚刚为我的 Github 帐户启用了双因素身份验证,因此我禁用了双因素身份验证,并且能够使用我的 UID 和 PWD 登录

答案 26 :(得分:0)

这是我们在从Gitlab登录之前强制执行“双重身份验证”后发生的。我们必须将id_rsa.pub中的文本粘贴到Gitlab,然后使用终端在VS代码中重新引入存储库。

答案 27 :(得分:0)

给定的解决方案:使用个人访问令牌是绕过此问题的一种方法。我没有启用双因素身份验证,但每当我登录新 PC 时,我都会收到电子邮件验证码来验证 PC。

解决方案: 您可以在浏览器上登录 GitHub 并验证您的身份,这会让 GitHub 知道信任该 PC。之后,使用 bash 登录,这次您的登录应该照常工作,因为现在您已被列入白名单。


注意:如果您有任何现有的 GitHub 帐户并想切换,请在 Credentials Manager > Windows Credentials (Generic Credentials Section) 中将其删除。这样做将允许您在进行另一个 git 操作时登录。

答案 28 :(得分:0)

如果这对切线有帮助,因为此问题现在是git的http身份验证问题的重中之重:Windows Credential Manager已正确存储了我的密码,并且由于我使用的是Git LFS,所以我configured an http URL instead of the usual ssh://

我的问题是我的公司密码策略强制更改了帐户密码,但我从未更新过存储的凭据(因为我始终使用ssh密钥)。

直接在Wincred GUI中直接更新密码即可:只需查找git:https://<your-url>条目。

答案 29 :(得分:0)

如果您使用的是ssh并通过https克隆,则将无法使用。用ssh克隆,然后推和拉应该可以正常工作!

答案 30 :(得分:0)

如果您在Windows上并尝试推送到域用户充当存储库用户(TFS)的Windows服务器,请尝试使用IE进入TFS URL(即http:\\tfs)。输入您的域帐户凭据,然后显示页面。

注意只能使用INTERNET EXPLORER!其他浏览器不会更改您的系统凭据。

现在转到git bash并更改存储库的远程用户,如下所示:

git config user.name "domainName\userName"

完成,现在您可以推动了!

答案 31 :(得分:0)

在Android studio canary build 3.1+中,如果您使用的是Android studio git工具,那么您可以使用以下内容:

  • 点击Android Studio
  • 点击偏好设置...
  • 进入VersionControl - &gt; Github上
  • 此处将身份验证类型更改为密码
  • 此步骤将要求您输入登录名和密码。输入github用户名s登录名和github密码作为密码。
  • 单击“测试按钮”。

如果连接成功,那么你可以使用android studio github UI客户端。

答案 32 :(得分:0)

如果您在Github帐户上启用了双因素身份验证,请登录您的GitHub帐户并转到:https://github.com/settings/tokens/new 生成新的访问令牌,复制该令牌并粘贴为终端中的身份验证密码。

答案 33 :(得分:0)

确保将ssh密钥添加到当前的ssh会话中。

  1. cat ~/.ssh/id_rsa.pub的输出复制到SSH和GPG密钥下的GitHub设置。

  2. 使用ssh-add ~/.ssh/id_rsa.pub

  3. 更新您当前的ssh会话

    我正在使用安装了Openssh的Windows Powershell。

答案 34 :(得分:0)

确保你有WRITE权限推送。

read ***write*** admin 

答案 35 :(得分:0)

如果问题占优势,请使用正确的凭据

如果你使用androidstudio 2.1 beta然后它的bug,升级到beta 2(3 mb更新文件),这对我有用

答案 36 :(得分:0)

问题陈述:&#34; git致命身份验证失败&#34;。我正在使用bitbucket。

<强>解决方案: 我只是删除了用户使用bitbucket的访问管理,然后添加了相同的用户。 .gitconfig文件很简单

[user]
    name = BlaBla
    email = blabla@gmail.com

[push]
    default = simple

答案 37 :(得分:0)

我也遇到了错误(这就是我降落在这里的原因),但没有一个建议对我有用。这是我第一次尝试将本地Git部署到azure。当我收到此错误时,我会在几次尝试后重置我的凭据(通过单击Azure中的链接)。问题是,此时它告诉我我的用户名已经被占用,所以我也将我的用户名改为另一个。最后,我手动删除了本地驱动器上的.git文件夹,并重新部署它没有问题。