从命令行(通过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并使用密钥,但这并不能解决验证失败的原因.
我没有
@github.com
地址
您不必:@
是用户名:密码和域之间的分隔符.
它不是电子邮件地址.
一个完整的GitHub https网址将是:
https://username:password@github.com/username/reponame.git
没有密码(然后会在命令行上询问),这将给出:
https://username@github.com/username/reponame.git
但同样,username@github.com
不是电子邮件地址,只是凭据的第一部分.
确保您的情况username
和reponame
是正确的:它是区分大小写.
请注意,如果您不想在URL中清除所述凭据,则可以在.netrc.gpg
(或_netrc.gpg
在Windows上)存储和加密凭据.
请参阅"使用时是否有办法跳过密码输入https://github
".
[仅限Mac]
如果您需要删除身份验证,请使用
git credential-osxkeychain erase host=github.com protocol=https
在Mac上.
请参阅https://help.github.com/articles/updating-credentials-from-the-osx-keychain/
GitHub的支持立即确定了问题的根源:双因素授权.
要通过https在shell上使用GitHub,请创建OAuth令牌.正如页面所述,我确实必须从Keychain中删除我的用户名和密码凭据,但是osx-keychain
在适当的位置,令牌将作为密码存储,并且其功能与没有双因素授权的https完全相同.
转到Credential Manager => Windows Manager
删除与tfs相关的所有内容
现在单击" 添加通用凭据"并提供以下值
(1)互联网或网络地址:git:https://tfs.donamain name(2)用户名:您的用户名(3)密码:您的密码
这应该解决它
如果您之前存储了不同的凭据,则可能会在Windows中发生.转到凭据管理器并删除存储的github凭据
只是因为这也帮助了其他人,我登录了mac app,命令行工作正常,但是因为我打开2FA,我的命令返回错误.我必须退出应用程序,然后我可以在我的命令中使用我的个人访问令牌,按照这里的答案.
希望这有助于某人!
当我为github启用2-way身份验证时,我也发生了同样的事情。我要做解决的事情:
获取您的个人访问令牌。您必须检查并生成(如果尚不可用)。链接:https : //github.com/settings/tokens
转到本地并删除文件夹,然后从github重新克隆分支。
现在尝试您之前尝试过的命令,即:git pull origin master
输入用户名并在密码中粘贴生成的令牌,也不要忘记将该令牌保存在某处,因此您可以根据需要重复使用。
这样做可以解决您的问题。