如何将id_rsa.pub转换成id_rsa?

How to convert id_rsa.pub to id_rsa?

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

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

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

检查文件是否在 .ssh 中,我只是将 id_rsa.pub 替换为我电子邮件中的文件,并保持原样 id_rsa。

尝试访问服务器但总是报错"Permission denied (publickey)."

可能是因为id_rsa还是最新的

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

谢谢。

简单地说,没有。

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

您生成的新密钥对与旧密钥对完全不同。无论您尝试通过 ssh 连接到什么服务器,都希望看到使用您的旧私钥签名的请求。由于您无法再访问它,因此您无法使用正确的密钥签署请求,并且服务器拒绝您的 ssh 尝试并出现 public 密钥错误。

所以,基本上,因为您无法访问您的私钥,您不能再使用该密钥对进行 ssh。

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

1 注意:理论上可以生成与现有 public 密钥匹配的私钥,但这个过程在计算上是难以处理的。 Digicert estimates 2048 位 RSA 密钥需要 6.4 千万亿年。

通常你有一个 rsa 密钥的私有部分和一个 public 密钥。您将 public 密钥传播到互联网上。现在你可以用你的包或数据的私钥签名,每个知道你 public 密钥的人都可以检查这个数据或包是否来自你。因此可以从私钥生成 public 密钥,但我不可能在可接受的时间内从 public 密钥生成私钥。所以你需要在你的电脑上生成一个新的,并且需要把新生成的 public 密钥放到你的服务器上,然后你就可以再次访问了。