【发布时间】:2011-02-02 12:17:13
【问题描述】:
我无法使用生成的 ssh 密钥登录 github。我已遵循本手册:http://help.github.com/linux-key-setup 但在步骤:
ssh git@github.com
我明白了:
代理承认未能使用 钥匙。没有权限 (公钥)。
怎么了?当然,我正在添加我自己的用户电子邮件。
试过dsa-key,还是一样。
【问题讨论】:
我无法使用生成的 ssh 密钥登录 github。我已遵循本手册:http://help.github.com/linux-key-setup 但在步骤:
ssh git@github.com
我明白了:
代理承认未能使用 钥匙。没有权限 (公钥)。
怎么了?当然,我正在添加我自己的用户电子邮件。
试过dsa-key,还是一样。
【问题讨论】:
我发现这对我有很大帮助http://playwithrubyandrails.blogspot.com/2011/04/process-for-deploying-app-on-heroku.html
ssh-add ~/.ssh/id_rsa在生成相关密钥后解决了我的问题
【讨论】:
ssh-add 要求您输入密码并使用ssh-agent 服务将解密的私钥保存在内存中。然后,当您稍后尝试使用相同的私钥时,代理将清楚地提供它。我不知道确切的功能,我可以想象ssh-agent 将密钥加密并在需要时对其进行解密。也就是说,它可能有一种方法可以以一种更安全的方式保存密钥,而不是仅仅保持清晰。 known_hosts 是另一回事。
生成 ssh 密钥后,我按照 jamesw 的建议执行了下面列出的命令。
$ ssh-add ~/.ssh/id_rsa
我输入了密码。然后尝试克隆 heroku 存储库。这次效果很好。
【讨论】:
这是一个 ubuntu 问题。导出“SSH_AUTH_SOCK=0”为我解决了这个问题。更多详情请访问 -https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/201786。
【讨论】:
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh。我想这将消除在ssh-agent 中保存密钥的能力。
权限被拒绝(公钥)
这通常是由于 ssh 不能 找到你的钥匙。确保您的密钥是 在默认位置 ~/.ssh。如果 你再次运行 ssh-keygen 在所有 3 个提示处按回车键 自动放在这里。然后你 可以将 id_rsa.pub 的内容添加到 我的 github 密钥。如果 id_rsa.pub 没有 工作尝试 id_dsa.pub。你可能需要 使用 ssh-keygen 生成新的 dsa 密钥 -t dsa 如果你只有一个 rsa 密钥。
如果您仍然遇到问题并且 以上都不起作用,你可能有 来自 debian 的列入黑名单的密钥 打开 ssh 错误。你应该更新 打开 ssh 并重新生成您的密钥。
所以,只是为了检查 - 您的密钥在 ~/.ssh/ 下是否可用 id_rsa 和 id_rsa.pub 或其他方式,您是否指定了它们的用途?
【讨论】:
感谢这个帖子(我知道那不是 github),我能够让 gitlab 正常工作。
我也发现@jamesw 的答案是正确的。
我最终不得不删除我的 known_hosts 文件并使用与我的 gitlab 帐户相同的密码重新创建我的 ssh 密钥。
然后我做了ssh-add 和git push -u origin master。成功!
感谢大家的帮助。
更新:
我决定在没有密码的情况下重新制作我的 ssh 密钥并再次遇到此错误。
这一次,我能够将旧的known_hosts 复制到新的.ssh/ 并简单地运行ssh-add。
【讨论】:
出现这个问题主要有以下几个原因:
如果您确定您的公钥是正确的,请检查您机器中 ~/.ssh 文件夹中的公钥格式。对于 openssh,您不能使用 puttygen 格式的公钥,反之亦然。要更改格式,您可以使用您的私钥使用以下命令
$ ssh-keygen -e -f ~/.ssh/id_rsa > ~/.ssh/id_rsa_com.pub
$ ssh-keygen -i -f ~/.ssh/id_rsa_com.pub > ~/.ssh/id_rsa.pub
最后检查您是否已将密钥添加到系统中的 ssh 客户端。您可以使用以下命令来做到这一点
$ eval "$(ssh-agent -s)"
$ ssh-add
【讨论】:
【讨论】:
请注意,ssh-agent 是每个会话(每个终端)。使用像 keychain 这样的 ssh 代理管理器(请参阅其有关如何设置的文档)通过任何会话(从任何术语)进行访问。
【讨论】:
当我从另一个操作系统复制 id_rsa 和 idrsa.pub 时,我遇到了同样的错误。这些文件有 644 权限。所以我把它改成了600。错误已修复。
【讨论】: