Git克隆SSH权限被拒绝。

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

如果我输入 < /p>
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

这非常有帮助,因为git错误提示只是“权限被拒绝”。当我确认ssh设置正常工作时,我意识到问题是由于权限问题,git无法在当前文件夹中创建目录。 - comiventor
在我的情况下,我只需要先执行 cd ~/.ssh/ssh-add <name-of-key>,然后才能进行克隆。 - Eric
有时候问题可能是目录的所有权也不正确,这会阻止克隆操作。 - Mukesh
4个回答

24

这个极不明确的错误意味着服务器拒绝了你的连接。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

或者您可以使用SSH协议的较短的scp样式语法:

$ git clone user@server:project.git

只是想确保你从Github账户复制了正确的SSH克隆URL-

enter image description here


1
@gabboshow 看到上面的更新了吗?无论你卡在哪里,从头再次按照文档步骤进行操作,看看是否正确执行。 - raurora

19

git clone ssh://github.com/用户名/仓库名.git是错误的。正确的做法是:

git clone ssh://git@github.com/username/repository.git

或者更好的是:

git clone git@github.com:username/repository.git

7

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

--重新启动PowerShell,再尝试克隆代码库。

 git clone  <<url copied from git repo>>

4
如果是公共仓库,可以通过使用git协议和抓取url来避免整个密钥事情。
git clone git://github.com/username/repository.git

1
那么我猜这意味着它在底层使用http访问? - AnneTheAgile
这已被GitHub弃用,请参见https://github.blog/2021-09-01-improving-git-protocol-security-github/。 - Rémi Benoit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接