git clone ssh权限被拒绝

时间:2014-05-20 17:17:23

标签: git ssh

我按照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

4 个答案:

答案 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克隆网址

enter image description here

答案 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>>