使用带有 ssh-agent 的 PKCS#8 加密私钥

ore*_*nyk 7 ssh ssh-agent

我设立了Rails开发一个新的Ubuntu系统(12.04.2 LTS),并希望使用加密的SSH私钥按照文章。我可以使用GitHub 上的说明设置标准 ssh 密钥对,一切正常,但是当我按照第一篇文章中的说明进行操作时,我无法再使用 ssh 登录。相反,我收到错误消息“代理承认无法签名使用钥匙。” 我发现了一个可能相关的错误(无法发布低声誉的链接 b/c,#328127);我没有被要求提供我的私钥密码,所以我在创建后修改了私钥的事实可能是问题所在。尝试使用ssh-addonly手动添加新密钥会导致错误返回两次。我不知道如何设置$SSH_AUTH_SOCK为零,否则我也会尝试这样做。任何帮助将不胜感激,谢谢!

Shn*_*sel 4

取消设置 SSH_AUTH_SOCK 是一种解决方法,但这样做会禁用 ssh-agent,而有些人可能仍然想使用它。

ssh-agent 似乎无法使用私钥签署任何内容,因为在自动将此密钥添加到密钥环时它无法正确解密它。

如果在 ~/.ssh 中生成标准 id_rsa 身份文件,或者在 ~/.ssh 中存储私钥及其公钥,则 ssh-agent 会自动将其添加到其密钥环中。但这样做时,它不会提示输入密码,也不会解密密钥。

解决方案是手动添加密钥。使用 ssh-add -D 从 ssh-agent 中删除所有 pkcs#8 加密密钥,并将私钥+公钥文件移出 ~/.ssh。重新启动或 ssh-agent -k,然后将 pkcs#8 加密的私钥移回到 ~/.ssh。使用 ssh-add 时,系统会提示您输入解密密码。ssh-agent 现在可以访问未加密的私钥,因此可以用它来签名。

(通过达蒙·德兰斯菲尔德