GitHub身份验证通过https失败,返回错误的电子邮件地址

时间:2014-01-03 22:34:49

标签: git github https

从命令行(通过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并使用密钥,但这并不能解决验证失败的原因。

8 个答案:

答案 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不是电子邮件地址,只是凭据的第一部分。

确保usernamereponame的大小写正确无误:it is case sensitive

请注意,如果您不想在网址中清除所述凭据,则可以在.netrc.gpg(或Windows上的_netrc.gpg)中存储和加密凭据。
请参阅“Is there a way to skip password typing when using https://github”。

答案 2 :(得分:14)

  • 转到凭据管理器=> Windows管理器
  • 删除与tfs相关的所有内容
  • 现在单击添加通用凭据并提供以下值

    (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启用双向身份验证时,我发生了同样的事情。我要解决的事情:

  • 获取个人访问令牌。如果不可用,您必须检查并生成。链接:https://github.com/settings/tokens
  • 转到您的本地并删除文件夹,然后从github重新克隆分支。
  • 现在尝试你之前尝试过的命令,即:git pull origin master
  • 输入用户名和密码粘贴生成的令牌,也不要忘记将该令牌保存在某处,以便您可以根据需要重新使用。

这样做可以解决您的问题。

答案 7 :(得分:-2)

在Windows上,您可能会被防病毒或Windows防火墙静默阻止。暂时关闭这些服务并从远程原点推/拉。