如何将 id_rsa.pub 转换为 id_rsa?

vhe*_*her 0 linux ubuntu ubuntu-14.04

基本上我的电脑早些时候出现故障,无法再从 SSD HD 检索我的文件。

我随身带着 id_rsa.pub ,因为我之前通过电子邮件将其发送给我们的支持团队,以便我访问服务器。

现在我在计算机上执行此命令“ssh-keygen -t rsa”以生成新的公钥。

检查文件是否在 .ssh 内后,我只需将 id_rsa.pub 替换为我电子邮件中的文件,然后保留 id_rsa 不变。

尝试访问服务器,但总是出现错误“权限被拒绝(公钥)”。

这可能是因为 id_rsa 仍然是最新的。

有什么办法可以根据我拥有的公钥替换该值吗?

谢谢。

Zei*_*yth 5

简单地说,不。

公钥加密背后的重要思想是私钥(在本例中为 id_rsa)始终是隐藏且安全的,并且只有一个人(或计算机)可以访问它。公钥 (id_rsa.pub) 提供了足够的信息,世界上任何人都可以安全地访问它。如果您可以从公钥中检索到原始私钥,那么您的私钥将不安全1

您生成的新密钥对与旧密钥对完全不同。无论您尝试 ssh 连接到哪个服务器,都希望看到使用您的旧私钥签名的请求。由于您无法再访问它,因此您无法使用正确的密钥对请求进行签名,并且服务器会因公钥错误而拒绝您的 ssh 尝试。

所以,基本上,因为您失去了对私钥的访问权限,您无法再使用该密钥对进行 ssh。

您的管理团队需要将新的公钥放到服务器上,以便您可以使用新密钥进行 ssh。

1注意:理论上可以生成与现有公钥相匹配的私钥,但此过程在计算上很困难。Digicert 估计2048 位 RSA 密钥需要 6.4 千万亿年。