Git推送导致“身份验证失败”
我一直在使用Github一段时间,并且我一直没有问题使用git add
, git commit
和git push
。 突然间我有一个错误,说:
致命:身份验证失败
在终端中,我克隆了一个存储库,处理一个文件,然后使用git add
add将该文件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 = ############
如果您在Github帐户中启用了双因素身份验证,则无法使用帐户密码通过HTTPS进行推送。 相反,您需要生成个人访问令牌。 这可以在您的Github帐户的应用程序设置中完成。 使用此令牌作为您的密码应允许您通过HTTPS推送到远程存储库。 照常使用你的用户名。
https://help.github.com/articles/https-cloning-errors#provide-access-token-if-2fa-enabled
如果设置为https,您可能还需要更新存储库的来源:
git remote -v
git remote remove origin
git remote add origin git@github.com:user/repo.git
首先,您可以确保使用正确的网址:
git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git
然后,如果它之前正在运行,并且它没有要求输入用户名,则必须是因为您已将您的凭据(登录名/密码)存储在$HOME/.netrc
文件中,如此处所述。 您可以仔细检查这些设置,并确保您的代理(如果有的话)没有更改。
如果仍然不起作用,您可以切换到ssh url:
git remote set-url origin git@github.com:zkirkland/Random-Python-Tests.git
但这意味着你已经在你的账户设置中发布了你的SSH公钥。
这为我工作,它也记得我的凭据:
运行gitbash
指向repo目录
运行git config --global credential.helper wincred
上一篇: Git push results in "Authentication Failed"
下一篇: Why do GitHub HTTPS schemes always ask for my password?