2013-10-21 229 views
0

我已经在我的新机器上从头安装了新的Ubuntu,并且想要使用ssh访问远程主机。问题是,即使我拥有公钥和私钥,我也忘记了在创建密钥时使用的密码,因为在此之后我已将它传递给ssh-agent。但我仍然在我的笔记本电脑中存储(passphrase)。如果我有root访问权限和两个密钥,如何从ssh-agent恢复密码?恢复密码rsa/dsa密钥

+0

ssh-agent无法在重新启动后存活。你从不关机你的笔记本电脑或者mayby您正在谈论密码管理器,如gnome-keyring或KWallet? – damienfrancois

+0

如果ssh-agent仅为会话存储密码,那么它必须在其他地方,因为我可以在重新引导后轻松地将ssh传输到服务器不带密码的地方。 – boldnik

+0

已经使用脚本从密钥环中提取密码,但我根本不使用它,并且响应是“从”会话“密钥环中提取密钥: 密钥环”会话“是空的。 – boldnik

回答

1

据我所知,密码被用来加密私钥。 ssh-agent不记得密码 - 它会记住解密的私钥。

而且,作为一个damienfrancois提到,它不应该记住它通过重新启动。

如果您希望从ssh-agent本身提取解密的私钥,则必须找到一个工具,用于搜索正在运行的进程的内存并找到密钥。一个这样的工具可以找到here,但你可能会发现它使用非常具有挑战性。

对于一个更实际的答案,你可以从~/.ssh/id*中删除你的密钥,制作你知道密码的新密码,然后继续 - 对于一台新机器,你可能没有太依赖它们。

+0

我怎么可能不从我的笔记本电脑输入密码短语,但我需要使用来自其他任何位置的相同密钥来执行此操作? – boldnik

+0

当您输入密码时,它解码密钥。我假设你的笔记本电脑上有东西(ssh-agent,gnome-keyright,idk)缓存了解密值。 – Murph

+0

你可能是对的,但我无法得到它为什么我可以轻松使用关键的无线密码,而只是失败了。 – boldnik