"git clone"命令中SSH公钥被拒绝

20

我想在本地git上克隆一个我在GitHub存储库中fork的Git Repo,这是一个Rails应用程序。我打算通过将其推入Heroku来克隆它。我生成了一组RSA密钥并将其复制到我的GitHub公共密钥中。当我尝试git clone "public url"时,它会显示“Public key denied”。我尝试使用ssh git@github.com验证我的密钥,也显示“Public key denied”。我尝试了多种方法来使其正常工作,但仍未成功。我尝试将.ssh文件夹上的权限更改为600和700。我还尝试添加DSA密钥,因为RSA密钥无法使用。请帮帮我。谢谢。 :)

顺便说一下,我使用的是Vista系统。

8个回答

29

虽然这是一个很旧的帖子,但我现在使用Cygwin并且必须这样做才能开始在phpfog.com上创建我的新网站。

首先,我在Cygwin中运行了以下命令:

exec ssh-agent bash
ssh-add ~/.ssh/private-key-name

然后我收到了:

Identity added: /home/scott/.ssh/private-key-name (/home/scott/.ssh/private-key-name)

4
这对我解决了一些非常烦人的“git clone”问题。为什么SSH/SSL身份验证管理总是那么难懂呢? - aroth
1
对我来说,它只为启动的bash窗口添加身份标识(我在Cygwin上),但是在我关闭它之后,命令行命令继续拒绝公钥。有没有可能使这个更改永久化? - kirhgoff
这解决了我在Springloops上使用git push origin master的问题。太神奇了,谢谢! - montrealist

4

将公钥复制到您的计算机上,即 ~/.ssh/id_rsa.pub(使用记事本打开)

将此密钥粘贴到您的github帐户中的“添加SSH密钥”部分。

注意:如果不存在,请使用ssh-keygen -t rsa生成ssh密钥。


3
您可以尝试使用ssh-add添加私钥吗?

我尝试了一下,它说无法打开到您的身份验证代理的连接。 - KT.
eval $(ssh-agent) 无法解决任何问题,因为如果代理未运行,则代理 pid 将是随机数。 - amuliar

3

在大量搜索后,我找到了这个答案。在添加密钥之前,我必须启动bash引擎。我也将我的应用程序从github克隆到本地服务器。


1

如果你使用的是Linux系统,你可以尝试使用keychain工具来管理SSH代理。


1

考虑使用 ForwardAgent 选项。

尝试添加:

Host * 
    ForwardAgent yes

将其返回到本地机器上的/etc/ssh/ssh_config。


0

我曾经遇到过同样的问题。 请检查您的公钥文件内容:

  1. 它必须以ssh-rsa开头
  2. 它必须只有一行
  3. 格式应该像这样: ssh-rsa manysymbolshere== somekeyname

如果您是在Windows上使用puttygen生成密钥,请不要将公钥保存到磁盘上的文件中 - 它会有注释,您必须在复制到服务器之前删除它们。 将公钥复制到剪贴板,然后使用记事本将其保存为*.pub文件。


-1

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