亚马逊EC2密钥对恢复

64

我需要知道访问Amazon EC2中正在运行的实例的任何方法。

  • 我没有原始的密钥对".pem"文件。
  • 我可以访问AWS管理控制台。
  • 终止/重启是不可行的。

我找到了最接近我的问题的这个,但我希望事情已经改变。

有没有办法下载该pem文件或分配新的密钥对?


1
https://forums.aws.amazon.com/thread.jspa?threadID=52593 - user285594
这个链接对我很有帮助。 - Claudio Santos
从2018/2019年开始,您可以通过会话管理器或EC2实例连接进行登录。使用这些方法,您可以无需密钥对即可登录,从而能够向实例上传新的公钥。 - pyknight202
4个回答

53
关键对只能从亚马逊下载一次,据推测这是出于安全考虑。你可以将你的弹性IP之一分配给该实例,并通过该IP正常路由流量。然后对实例进行快照并使用新的关键对创建副本。将弹性IP切换到新实例上。这并不是特别优雅,但比完全关闭时间要少得多。
注意:如果您将弹性IP分配给实例,则它将覆盖当前的公共IP,因此您必须确保更新DNS。

您真是个救星。我使用了这篇指南,对我非常有帮助。http://www.techrepublic.com/blog/the-enterprise-cloud/how-to-create-a-new-ami-from-a-snapshot-and-launch-a-new-vm/ - Tom Carver

10

实际上,您只有在停止实例、卸载根分区(通常为/dev/sda1)并将其附加到另一个实例时才能为实例分配新的密钥对。

完成这些操作后,您将可以访问/home/ubuntu/.ssh/authorized_keys文件。您可以通过命令行生成一个新的.pem密钥,并将其粘贴到该文件中。

然后,您将卸载该分区并重新附加到原始实例。使用新生成的密钥连接到它。

您可以在Google或此处了解更多信息。


身份验证提示后面的链接 - 0fnt

4

当您设置AMI时,请设置cloud-init。在启动时,它将下载用户数据并相应地处理。因此,在AMI停止时,您可以将以下内容插入到用户数据框中:

mkdir -p /root/.ssh/

cat > /root/.ssh/keyname.pub <<EOF_PUB
ssh-rsa yourkeydata== keyname@wherever
EOF_PUB

cat /root/.ssh/keyname.pub >> /root/.ssh/authorized_keys;

需要注意的是,如果你的cloud-init软件包没有安装或运行,则此方法将无效。我曾经多次因为开发人员没有保存他们的密钥而不得不恢复被锁定的AMI,这个方法真是太好用了。


-10
您可以前往EC2控制台,点击“X Key Pair”(X为数字),创建密钥对。然后给它一个名称,下载选项将出现。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接