Git克隆到服务器响应权限被拒绝(publickey)。致命:远程端意外挂断

时间:2013-10-24 18:18:38

标签: git ssh key

我已经尝试了我能想到的一切,但我仍然遇到这个错误:

我的步骤:

1)生成〜/ .ssh

的本地密钥

2)将该密钥复制到我的个人资料的BitBucket SSH密钥。

3)在〜/ .ssh

中将该密钥添加到我的服务器

还有别的我应该做的吗?我只是在做一个git clone repo(SSH)

1 个答案:

答案 0 :(得分:2)

首先,SSH对您的文件和目录权限非常挑剔。仔细检查您的.ssh目录是否为chmod 700,您的密钥位于名为id_rsa的{​​{1}}文件中,并且这两个文件都归您所有。

其次,是否有运行ssh-agent? chmod 600是一种可以缓存凭据的服务,因此您无需在每次提取和推送时键入密码,如果需要,可以使用超时等等。 ssh-agent(因此ssh)会向您的代理人询问您的密钥是否在运行。

要向代理添加密钥,请使用git。如果您的密钥不在名为ssh-add的文件中,您也可以通过显式路径添加它:id_rsa。添加密钥后,您应该能够在ssh-add ~/.ssh/my_other_rsa的输出中看到他们的指纹。

如果您没有运行代理(您会看到“ssh-add -l”),那么使用Could not open a connection to your authentication agent.(然后添加密钥)启动代理可能会有所帮助。如果可行,您可以使用some shell tricks为服务器上的每个会话自动启动一个。