从命令行(通过https,而不是ssh)启动推送或任何其他操作,调用用户名和密码不仅会失败,但是,如果失败,则会返回
Username for 'https://github.com': username
Password for 'https://username@github.com':
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/username/repository.git/'
我没有@github.com
地址。密码和用户名是正确的。
我知道我可以切换到SSH并使用密钥,但这并不能解决验证失败的原因。
答案 0 :(得分:159)
GitHub的支持立即确定了问题的根源:双因素授权。
使用https,create an OAuth token在shell上使用GitHub。正如页面所述,我确实必须从Keychain中删除我的用户名和密码凭据,但是osx-keychain
已就位,令牌将作为密码存储,并且其功能与没有双因素授权的https完全相同
答案 1 :(得分:20)
我没有
@github.com
地址
您不必:@
是用户名:密码和域名之间的分隔符
它不是电子邮件地址。
完整的GitHub https网址将是:
https://username:password@github.com/username/reponame.git
没有密码(然后会在命令行中询问),这将给出:
https://username@github.com/username/reponame.git
但同样,username@github.com
不是电子邮件地址,只是凭据的第一部分。
确保username
和reponame
的大小写正确无误:it is case sensitive。
请注意,如果您不想在网址中清除所述凭据,则可以在.netrc.gpg
(或Windows上的_netrc.gpg
)中存储和加密凭据。
请参阅“Is there a way to skip password typing when using https://github
”。
答案 2 :(得分:14)
现在单击添加通用凭据并提供以下值
(1)Internet或网络地址:git:https://tfs.donamain名称 (2)用户名:您的用户名 (3)密码:您的密码
这应该解决
答案 3 :(得分:9)
如果您之前存储了其他凭据,则可能会在Windows中发生。转到凭据管理器并删除存储的github凭据
答案 4 :(得分:8)
[仅限Mac]
如果您需要删除身份验证,请使用
git credential-osxkeychain erase
host=github.com
protocol=https
在Mac上。
请参阅https://help.github.com/articles/updating-credentials-from-the-osx-keychain/
答案 5 :(得分:5)
只是因为这也帮助了其他人,我登录了mac应用程序,命令行工作正常,但因为我打开2FA,我的命令返回错误。我必须退出应用程序,然后根据ele的回答here,我可以在我的命令中使用我的个人访问令牌。
希望能帮助别人!
答案 6 :(得分:4)
当我为github启用双向身份验证时,我发生了同样的事情。我要解决的事情:
这样做可以解决您的问题。
答案 7 :(得分:-2)
在Windows上,您可能会被防病毒或Windows防火墙静默阻止。暂时关闭这些服务并从远程原点推/拉。