我有一个项目托管在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上给出的说明和许多堆栈讨论的建议,但没有办法。你知道我可能做错了什么吗?


当前回答

我做了:

$git pull origin master

然后它要求[用户名]和[密码],现在似乎工作正常。

其他回答

我也有同样的问题

$ git clone https://github.com/sample-url.git
Cloning into 'Project'...
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/sample-url.git/'

我只是git init,然后git clone <clone-url>

git init
git clone https://github.com/your-clone-Url

这对我很管用。

https://git@github.com/eurydyce/MDANSE.git不是ssh url,而是https url(这需要你的GitHub账户名,而不是'git')。

尝试使用ssh://git@github.com:eurydyce/MDANSE.git或直接使用git@github.com:eurydyce/MDANSE.git

git remote set-url origin git@github.com:eurydyce/MDANSE.git

OP Pellegrini Eric补充道:

这就是我在~/中所做的。当前包含以下条目的gitconfig文件[remote "origin"] url=git@github.com:eurydyce/MDANSE.git

它不应该在你的全局配置中(在~/中的那个)。 你可以在你的repo中检查git config -l: url应该在本地配置中声明:<yourrepo>/.git/config。

因此,在执行git remote set-url命令时,请确保您处于repo路径中。


正如Oliver的回答中提到的,如果激活了双因素身份验证(2FA), HTTPS URL将不使用用户名/密码。

在这种情况下,密码应该是PAT(个人访问令牌),见“在命令行上使用令牌”。

此限制仅适用于HTTPS url, SSH不受此限制。

我也有同样的问题。我通过在客户端应用程序的repo设置中将远程分支的路径从https://github.com/YourName/RepoName更改为git@github.com:YourName/RepoName.git来解决这个问题。

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

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

通过命令行删除凭据

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

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

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

# [Now Press Return]

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

这个解决方案对我很有效:

打开控制面板 转到凭证管理器 单击窗口凭据 在Generic Credential部分,将有git url,更新用户名和密码 重新启动Git Bash并尝试克隆