我一直在使用Github一段时间,到目前为止我对git add
,git commit
和git 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 = ############
答案 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)
请尝试以下步骤编辑或删除已保存的凭据:
答案 2 :(得分:56)
这对我有用,它还记得我的证书:
运行gitbash
指向repo目录
运行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)
答案 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
下次尝试推送时,它会要求您提供凭据。
有关用户名和密码的安全和不安全存储的更多详细信息,请遵循以下准则:
答案 8 :(得分:21)
如果您更改git服务帐户(Git)的登录名或密码,就会发生这种情况。您还需要在 Windows凭据管理器中进行更改。在Windows搜索菜单中键入“凭据管理器”。
Windows凭据管理器-> Windows凭据,然后在“通用凭据”下编辑您的git密码。
答案 9 :(得分:11)
嗨,我遇到了同样的错误,我尝试了本页中提到的所有解决方案,但没有用。最后,我找到了解决方案,于是想到了发布它。如果我在任何地方都不对,请纠正我。如果有时您的系统密码最近随时更改,则会出现此类错误。它将尝试从旧密码进行验证。 所以请按照以下步骤操作:
答案 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)
仅从.config文件更改:
url = http://www.github.com/###user###/Random-Python-Tests
要:
url = http://###user###@github.com/###user###/Random-Python-Tests
答案 17 :(得分:3)
您好,我遇到了相同的错误,我尝试了本页中提到的所有解决方案,但没有用。最后,我找到了解决方案,于是想到了发布它。如果我在任何地方都不对,请纠正我。如果有时您的系统密码最近随时更改,则会出现此类错误。它将尝试从旧密码进行验证。 因此,请按照以下步骤操作:
单击“从库中删除”
答案 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中的拒绝访问问题。
对我来说,一切都很好,我也尝试了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 github UI客户端。
答案 32 :(得分:0)
如果您在Github帐户上启用了双因素身份验证,请登录您的GitHub帐户并转到:https://github.com/settings/tokens/new 生成新的访问令牌,复制该令牌并粘贴为终端中的身份验证密码。
答案 33 :(得分:0)
确保将ssh密钥添加到当前的ssh会话中。
将cat ~/.ssh/id_rsa.pub
的输出复制到SSH和GPG密钥下的GitHub设置。
使用ssh-add ~/.ssh/id_rsa.pub
我正在使用安装了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文件夹,并重新部署它没有问题。