基本上我的计算机早先崩溃了,无法再从我的SSD HD中检索我的文件。
我有我的id_rsa.pub,因为我之前通过电子邮件发送给我们的支持团队,然后才能访问服务器。
现在我执行此命令" ssh-keygen -t rsa"到我的电脑来生成新的发布密钥。
一旦检查文件在.ssh内部,我只需将id_rsa.pub替换为我在电子邮件中的文件,并保留id_rsa原样。
尝试访问服务器,但总是给我一个错误"权限被拒绝(公钥)。"
可能是因为id_rsa仍然是最新的。
我可以用任何方式替换基于我的pubkey的值吗?
感谢。
答案 0 :(得分:4)
简单地说,不。
公钥加密背后的一个重要思想是私钥(在本例中为id_rsa)始终是隐藏且安全的,只有一个人(或计算机)可以访问它。公钥(id_rsa.pub)提供了足够的信息,以便世界上任何人都可以访问它。如果您可以从公钥中检索原始私钥,那么您的私钥将不安全 1 。
您生成的新密钥对与旧密钥对完全不同。无论您尝试使用哪种服务器,都希望看到使用旧私钥签署的请求。由于您无法再访问它,因此无法使用正确的密钥对请求进行签名,并且服务器拒绝使用公钥错误进行ssh尝试。
所以,基本上,因为您失去了对私钥的访问权限,所以您不能再使用该密钥对进行ssh。
您的管理团队需要将新的公钥放到服务器上,以便您可以使用新密钥进行ssh。
1 注意:理论上可以生成与现有公钥匹配的私钥,但此过程在计算上难以处理。 Digicert estimates对于2048位RSA密钥,这需要6.4亿个千万年。
答案 1 :(得分:0)
通常,您拥有rsa密钥和公共密钥的私有部分。您将公钥传播到互联网。现在,您可以使用包或数据的私钥进行签名,并且每个人都知道您的公钥是否可以检查此数据或包是否来自您。因此,可以从私有生成公钥,但是我无法在可接受的时间内从公钥生成私钥。因此,您需要在计算机上生成一个新的,并且需要将新生成的公钥放在您的服务器上,然后您将再次访问。