SSH 公钥在“git clone”命令上被拒绝
Posted
技术标签:
【中文标题】SSH 公钥在“git clone”命令上被拒绝【英文标题】:SSH Public key denied on "git clone" command 【发布时间】:2010-12-21 20:56:22 【问题描述】:我正在尝试克隆我在 GitHub 存储库中分叉的 git 存储库。它是一个 rails 应用程序。我想在我的本地 git 上克隆它,以便我可以将它推送到 heroku。我生成了一组 rsa 密钥并将其复制到我的 GitHub 公钥上。当我尝试 git clone "public url"
时,它说公钥被拒绝。我尝试了ssh git@github.com
来验证我的密钥,它还说公钥被拒绝。我已经尝试了几种不同的方法来使其工作,但仍然没有。我试图在我的 .ssh 文件夹上将权限更改为 600 和 700。我还尝试添加 dsa 密钥,因为 rsa 不起作用。请帮我。谢谢。 :)
顺便说一句,我在 Vista 上。
【问题讨论】:
【参考方案1】:我遇到了同样的问题。 检查您的公钥文件的内容:
-
必须以 ssh-rsa 开头
必须是一行
格式如下:
ssh-rsa manysymbolshere== somekeyname
如果您在 Windows 中使用 puttygen 生成密钥 - 不要将公钥保存到磁盘上的文件中 - 它将包含 cmets,您必须在复制到服务器之前将其删除。 将公钥复制到剪贴板,然后使用记事本保存到 *.pub 文件。
【讨论】:
【参考方案2】:复制您计算机上的公钥,即~/.ssh/id_rsa.pub
(用记事本打开)
将此密钥粘贴到您的 github 帐户的“添加 SSH 密钥”部分。
注意:如果不存在 ssh 密钥,请使用 ssh-keygen -t rsa
生成 ssh 密钥
【讨论】:
【参考方案3】:考虑使用 ForwardAgent 选项。
尝试添加:
Host *
ForwardAgent yes
到本地机器上的 /etc/ssh/ssh_config。
【讨论】:
【参考方案4】:SSL certificate rejected trying to access GitHub over HTTPS behind firewall 看起来是一个非常相似的问题。当我没有设置密钥时,我从from those answers 快速克隆 git 存储库的一种解决方案是:
export GIT_SSL_NO_VERIFY=true
然后克隆出去。
【讨论】:
【参考方案5】:在这里回答一个非常古老的线程,但我在 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)
【讨论】:
这为我解决了一些非常烦人的git clone
问题。为什么 SSH/SSL 身份管理必须永远如此迟钝?
对我来说,它只为启动的 bash 窗口添加身份(我在 Cygwin 上),但在我关闭它之后,命令行命令继续拒绝公钥。有没有机会使这种变化永久化?
这解决了我的 git push origin master
Springloops 问题。太棒了,谢谢!【参考方案6】:
如果你在Linux上,你可以试试keychain工具来管理SSH代理。
【讨论】:
【参考方案7】:经过大量谷歌搜索,我找到了this answer。在添加密钥之前,我必须启动 bash 引擎。我也将我的应用从 github 克隆到本地服务器。
【讨论】:
【参考方案8】:您可以尝试使用ssh-add
添加私钥吗?
【讨论】:
我试过了,它说无法打开与您的身份验证代理的连接。 eval $(ssh-agent) 无法解决任何问题,因为如果代理没有运行,那么代理 pid 将是随机数以上是关于SSH 公钥在“git clone”命令上被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
Ansible git clone github 权限被拒绝(公钥)
github后台上传了ssh公钥之后git clone依然Permission denied