我有一个项目托管在GitHub上。我失败时,试图推动我的修改在主人。我总是得到以下错误消息

Password for 'https://git@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://git@github.com/eurydyce/MDANSE.git/'

但是,设置我的ssh密钥到github似乎没问题。实际上,当我执行ssh -T git@github.com时,我得到

Hi eurydyce! You've successfully authenticated, but GitHub does not provide shell access.

这似乎表明,一切都是OK从这一边(eurydyce是我的github用户名)。我严格按照github上给出的说明和许多堆栈讨论的建议,但没有办法。你知道我可能做错了什么吗?


当前回答

您可能会得到这个错误,因为您已经更新了密码。所以在终端上,首先确保你从钥匙链中清除你的GitHub凭证,然后将你的更改推到你的回购,终端将要求你的用户名和密码。

其他回答

如果你刚刚启用了2FA:

修改。/git隐藏文件夹下的隐藏配置文件,如下所示:

[remote "origin"]
    url = https://username:PUT_YOUR_2FA_TOKEN_HERE@github.com/project/project.git

由于密码错误,有时会发生这种问题。请检查您是否连接了AD密码(Active Directory密码),并且您最近更改了AD密码,但仍在使用旧密码尝试git命令。

更新旧的AD密码

Control Panel > Credential Manager > Windows Credential > change github password with my new AD password

当我遇到这个问题时,我所做的解决方法是从我的github仪表板生成新的令牌,并将以下代码粘贴到我的终端

$ git远程设置url来源https://your-github-username:your-github-token@github.com/your-github-username/your-github-repo.git

如果你像我一样刚刚更新了密码,然后运行git push就遇到了这个问题,那么有一个超级简单的解决方法。

仅限Mac用户使用。您需要删除GitHub的OSX Keychain访问条目。您可以通过终端运行以下命令来完成。

通过命令行删除凭据

通过命令行,可以直接使用凭据帮助程序擦除密钥链条目。

要做到这一点,键入以下命令:

git credential-osxkeychain erase
host=github.com
protocol=https

# [Now Press Return]

如果它成功了,什么也不会打印出来。为了测试它的工作,试着从GitHub克隆一个存储库,或者像我的情况下git push一样再次运行之前的操作。如果提示输入密码,则该keychain条目已被删除。

启用2FA,并得到错误远程:无效的用户名或密码。 fatal:认证失败

如果你在GitHub中启用了2FA,你需要输入一个个人访问令牌,而不是2FA代码和你的GitHub密码。

如何解决

https://github.com/settings/tokens生成令牌 复制个人访问令牌 现在在git操作期间输入个人访问令牌在您的密码的地方