恢复SSH私钥?

我有一个RSA密钥(由PuTTYgen生成),它被设置为通过SSHlogin到一堆机器。 或者说,我有这样一把钥匙。 (这台计算机在崩溃的时候,需要重新安装XP,私钥文件由文件系统encryption,现在基本上看起来像是整个其他操作系统和用户,无论XP会做什么解密密钥显然不能再做了。)

我剩下的就是一个OpenSSL兼容的base64公钥(从一台机器仍然设置为接受密码),当然还有密钥的密码。 我可能(!)在机器死亡之前仍然有一个旧的registry备份,但是必须search它。 无论哪种方式,这听起来像它可能无法恢复密钥文件本身。 (如果可能的话,那会很好,但是目前看来前景并不乐观。)

有没有办法恢复私钥,如果我不能恢复包含它的实际文件? 也许通过导入公钥到PuTTYgen或openssl并做一些相反的事情呢? 联系所有涉及的pipe理员,并发送新的密钥可能是一个痛苦,所以这几乎是最后的手段。

目前,从公钥上“恢复”私钥的唯一方法是通过穷举search(蛮力)。 这个系统是专门devise的,所以你可以把你的公钥发给任何人,而不用担心他们能够弄清楚你的私钥。

编辑:
警告! 简单的解释提前!

假设你有RSA密钥(最常见),公钥中有两个数字:n和e。 私钥具有相同的n,另一个数字d。 原来有两个庞大的素数p和q用来计算n,d和e,所以n和e可以encryption文本; n和d可以解密这个密文。 你有n和e。 你可以用n来表示p和q; 问题在于n是一个庞大的数字,有很多可能的p和q数字。 目前还没有已知的方法可以快速做到这一点。 我不确定黑客是否甚至还有编写工具的烦恼。 所以从本质上讲,不是现实中不可能的。

将密码分配给密钥时,只需对存储在计算机上的私钥进行简单encryption即可。 公钥完全不受此影响。 与私钥本身相比,密码短语相对容易中断; 所以这不应该依赖于主要的安全(你应该把你的私钥只保存在安全的地方)。

我敢肯定,如果你拥有公钥,没有办法恢复私钥 – 否则这将是一个很大的安全风险,因为任何拥有公钥的人都可以通过它来确定私钥。

如果我理解正确,你想从公钥生成一个兼容的私钥。 如果这是可能的,整个系统将是毫无意义的。 如果你pipe理它,我想知道如何从他们的SSL证书中产生我的银行的私钥。

从公钥恢复私钥是绝对不可能的。 你可以从私人生成一个公共的,但不是相反的。 这是完全不可能的,而且也是不对称encryption的重点。

唯一可以快速执行的是生成一组新的私钥和公钥集合,并replace您尝试访问的服务器上的公钥,但要做到这一点,您必须能够物理访问公用服务器之前存储的密钥。

如果你没有实际的机器访问,那对你来说实际上是不可能的。

此外,即使您有物理访问服务器的权限,如果硬盘驱动器或存储密钥的区域再次被encryption,实际上也不可能。

道格潘