我正在为Rails开发设置一个新的Ubuntu系统(12.04.2LTS),并希望按照这的文章使用一个加密的SSH私钥。我可以使用GitHub上的说明建立一个标准的ssh键区,一切正常,但是当我按照第一篇文章中的说明进行操作时,我就不能再使用ssh登录了。相反,我得到的错误是“代理承认没有使用密钥签名。”我发现了一个可能相关的bug (不能发布名声很低的链接b/c #328127);我没有被要求提供我的私钥密码,所以我在创建后修改了私钥可能是个问题。尝试使用ssh-add手动添加新键只会导致返回两次错误。我不知道如何将$SSH_AUTH_SOCK设置为零,否则我也会尝试。任何帮助都将不胜感激,谢谢!
发布于 2013-06-08 20:32:16
取消SSH_AUTH_SOCK是一种解决办法,但这样做会禁用ssh代理,有些人可能仍然想使用它。
看起来ssh-agent不能用私钥签名任何东西,因为当自动将这个密钥添加到密钥环时,它不能正确地解密它。
如果在~/.ssh中生成标准的id_rsa标识文件,或者在~/.ssh中存储私钥及其公钥,ssh代理将自动将其添加到其密钥环中。但这样做时,它不会提示输入密码,也不会解密密钥。
解决方案是手动添加密钥。使用ssh-add -D从ssh代理中删除所有-D加密密钥,并将private+public密钥文件移出~/.ssh。重新启动或ssh代理-k,然后将您的pkcs#8加密私钥移回~/.ssh。使用ssh-add,将提示您输入解密密码。ssh代理现在可以访问未加密的私钥,因此可以用它来签名.
(通过达蒙·德兰斯菲尔德)
发布于 2013-06-06 17:52:53
很抱歉给出了快速回答,$SSH_AUTH_SOCK修复对我有效;我在另一个错误线程中找到了说明。如果其他人被卡住了,输入export SSH_AUTH_SOCK=0可以解决这个问题。希望这能帮上忙!
发布于 2014-05-05 01:17:57
如果您愿意,可以做的另一件事是将GNOME密钥代理替换为OpenSSH提供的代理,然后再添加所有密钥,如这篇文章中所述。
https://askubuntu.com/questions/304545
复制相似问题