15

当我尝试将代码推送到我的仓库时,我得到了致命的:身份验证失败。我也在我的 github 帐户上添加了公钥。当我这样做时: ssh -i git@github.com
我得到 Hi amangupta052! You've successfully authenticated, but GitHub does not provide shell access.

任何人都可以帮忙吗?谢谢

4

1 回答 1

37

这取决于您使用的远程 URL。

如果git remote -v返回:

https://github.com/username/reponame

那么你的 ssh 设置就无关紧要了。但这会起作用:

ssh://git@github.com:username/reponame

另一个原因与您的私钥有关:如果它受密码保护,并且其中带有特殊字符,则通常无法正常工作。
有关其他 ssh 失败原因,请参见此处


要替换您的远程 named origin,请使用git remote命令:

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

(如GitHub 帮助页面中有关更改 rmeote url 中所述

如果你看到::

ssh: Could not resolve hostname github.com:amangupta052: 
     Name or service not known 
fatal: The remote end hung up unexpectedly

尝试非 scp ssh 语法:

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

(注意 ' /' 而不是 ' :' 之后github.com

正如这篇博文中评论的那样,也许这会奏效:

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

(类似 scp 的语法,但没有ssh://前缀)

正如我在这里提到的,scp 语法通常意味着~/.ssh/config文件可以正常工作。

于 2013-07-10T20:30:06.737 回答