我按照https://help.github.com/articles/generating-ssh-keys的说明进行操作 并输入
ssh -T git@github.com
我收到了消息
Hi username! You've successfully authenticated, but GitHub does not
# provide shell access.
当我尝试使用ssh
克隆存储库时git clone ssh://github.com/username/repository.git
我得到了
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
如果我输入
ssh-add -l
我看到3个键附有我的电子邮件地址(k1),另外2个附在~/.ssh/id_rsa (RSA)
内(k2和k3)。
键k3与k1相同
如果我输入
ssh -vT git@github.com
一切都很好......让我思考的唯一一条就是
debug1: Remote protocol version 2.0, remote software version libssh-0.6.0
debug1: no match: libssh-0.6.0
答案 0 :(得分:17)
这个非常不明显的错误意味着服务器拒绝了您的连接。 Github有一个非常丰富的文档 -
https://help.github.com/articles/error-permission-denied-publickey
更新 -
根据GitHub提供的说明检查密钥和令牌是否正确设置。如果我是你,再从头开始。可能是你没有使用Github正确初始化SSH密钥 -
cd ~/.ssh && ssh-keygen
cat id_rsa.pub
并将密钥复制到Github网站的SSH设置中。
要通过SSH克隆Git存储库,请指定ssh:// URL,如下所示:
$ git clone ssh://user@server/project.git
或者您可以使用较短的类似scp的SSH协议语法:
$ git clone user@server:project.git
只是想确保您从Github帐户复制正确的SSH克隆网址
答案 1 :(得分:15)
git clone ssh://github.com/username/repository.git
错了。你应该这样做:
git clone ssh://git@github.com/username/repository.git
或更好:
git clone git@github.com:username/repository.git
答案 2 :(得分:3)
如果它是公共存储库,则可以通过将git协议与fetch url一起使用来避免整个密钥。
git clone git://github.com/username/repository.git
答案 3 :(得分:1)
--------- Windows用户解决方案------------------
在Windows中遇到相同的问题,如下解决:
成功为git设置私钥/公钥后,您需要导航至:
C:\ Program Files \ Git \ etc \ ssh
-打开它下面的ssh-config文件并添加以下信息:
Host github.com
User git
IdentityFile << absolute path to your private key for git >>
-重新启动Power Shell,然后尝试再次克隆存储库
git clone <<url copied from git repo>>