4

我已经设置了我的本地系统,以便在“生成 SSH 密钥”操作指南中描述如何与 GitHub 一起工作。

密钥文件和 known_hosts 已创建,公钥已添加到 GitHub 帐户,我收到消息“Hi ***!您已成功验证,但 GitHub 不提供 shell 访问权限。”

在此处输入图像描述

但是我所有尝试做某事,需要连接到服务器的东西(编辑:具有写入访问权限)——git clone、git push 等——以错误结束:

致命:远端意外挂断

编辑:

我可以克隆,但只能通过 HTTP ( https://github.com/account/reponame.git ) 或 Git 只读 (git://github.com/account/reponame.git)。

编辑:

***@**** ~/.ssh
$ ssh-add -l
Could not open a connection to your authentication agent.

虽然 ssh-agent 守护进程 ( ssh-agent.exe) 正在运行。

大概这就是问题所在。

4

2 回答 2

2

有用!

我已经启动了Pageant(PuTTY SSH 身份验证代理)并向其中添加了我的 PuTTY 私钥(使用PuTTYgen(PuTTY 密钥生成器)从中id_rsa.pkk导出)。现在我可以写我的回购了。id_rsa

给遇到我同样烦恼的每个人的小方法:

0) 设置本地系统以使用 GitHub,如何在“生成 SSH 密钥”操作指南中描述。

1)打开PuTTYgen,加载/导入(OpenSSH)私钥id_rsa并将其(按钮Save private key)保存为id_rsa.pkk(在同一文件夹中,id_rsa保存位置,-- ~/.ssh)。您需要使用Pageant和(如果使用的话)TortoiseGit进行 PuTTY 身份验证的密钥的 PuTTY 变体。

在此处输入图像描述

2a)打开Pageant(在我的电脑上C:\Program Files (x86)\PuTTY\pageant.exe)并添加PuTTY私钥。或者只需使用Pageant打开 PuTTY 私钥文件 ( id_rsa.pkk) 。

2b) 对于TrtoiseGit,我只需在全局 TrtoiseGit 设置中设置SSH client( )。C:\Program Files (x86)\Git\bin\ssh.exe

在此处输入图像描述

而已。

我已经让它工作了,但我对这个主题没有深入的了解,无法提供解决方案和这个问题的原因的低层次解释(例如为什么它在某些客户中工作而不是在其他一些)。因此,如果您能更好地解释这一切,请随时编辑/评论这篇文章。

于 2013-02-27T15:57:20.547 回答
2

当 GitHub 正确记录您的公共 ssh 密钥时,弹出该错误消息的唯一实例是

  • 您尝试使用错误的案例或不正确的 ssh url 克隆 repo。
    它应该是:
git clone git@github.com:user/repo.git
  • 您尝试克隆一个您没有写入权限(公共回购)或任何访问权限(私人回购)的回购。
    从 GitHub 页面“我应该使用哪个远程 URL?

要使用这些 URL,您必须具有对公共存储库的写入权限或对私有存储库的任何访问权限
这些 URL 不适用于您没有写入权限的公共存储库。

  • 私钥受密码保护,您的身份验证代理无法正常运行:
$ ssh-添加 -l
无法打开与您的身份验证代理的连接。

对于最后一种情况,请考虑“如何运行 (git/ssh) 身份验证代理? ”或“ ssh-add 抱怨:无法打开与您的身份验证代理的连接

于 2013-02-27T07:38:44.443 回答