当我尝试将代码推送到我的仓库时,我得到了致命的:身份验证失败。我也在我的 github 帐户上添加了公钥。当我这样做时:
ssh -i git@github.com
我得到
Hi amangupta052! You've successfully authenticated, but GitHub does not provide shell access.
任何人都可以帮忙吗?谢谢
这取决于您使用的远程 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
文件可以正常工作。