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


当前回答

Windows使用cmd-Greetings时出现问题

在Windows上使用cmd-Greetings不允许克隆私有存储库有一个问题。删除本文档中描述的cmd-greeting(关键字Command Processor):

已知的问题

我可以确认其他客户,如SourceTree, GitKraken, Tower和TortoiseGit也受到了这个问题的影响。

其他回答

在这种情况下,如果你得到这个错误信息:

使用github创业 使用凭据。在git配置中,Helper =wincred 使用您最近更改的Windows凭据

然后看看这个答案: https://stackoverflow.com/a/39608906/521257

Windows将凭据存储在凭据管理器中,清除或更新它。

这就是答案。

设置github令牌:

https://github.com/settings/tokens

然后:

git remote set-url origin https://[token]@github.com/your_repository

当使用https:// URL连接到远程存储库时,Git将不使用SSH作为身份验证,而是尝试通过HTTPS进行基本身份验证。通常,你只需要使用没有用户名的URL,例如https://github.com/username/repository.git,然后Git会提示你输入用户名(你的GitHub用户名)和密码。

如果您使用https://something@github.com/username/repository.git,那么您已经预设了Git将用于身份验证的用户名:某某。由于您使用https://git@github.com, Git将尝试使用Git用户名登录,当然您的密码是无效的。所以你必须使用你的用户名。

另一种方法实际上是使用SSH进行身份验证。这样你就不用一直输入密码了;既然它似乎已经起作用了,那就是你应该使用的。

要做到这一点,您需要更改远程URL,以便Git知道它需要通过SSH进行连接。格式如下:git@github.com:用户名/存储库。要更新你的URL,使用这个命令:

git remote set-url origin git@github.com:username/repository

我通过安装GitHub CLI并运行gh auth登录来解决我的问题

看到的: https://docs.github.com/en/get-started/getting-started-with-git/caching-your-github-credentials-in-git#github-cli

控制面板 证书管理器 寻找选项web凭据和windows凭据 在任何一个你会发现github凭证修复它与正确的凭证 打开新的git bash实例,你应该能够执行你的git命令。

这为我工作,我能够拉和推到我的远程回购。