亚马逊EC2密钥对恢复

我需要知道有什么方法可以访问Amazon EC2中正在运行的实例。

  • 我没有原始的密钥对“.pem”文件
  • 我可以访问awspipe理控制台
  • 终止/重新启动是不可行的

最接近我的问题,我发现是这个,但我希望事情发生了变化。

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

密钥对只能从亚马逊下载一次,大概是出于安全原因。 你可以做的是分配一个弹性IP到实例,并通过通常的路由stream量。 快照实例并调出一个新的密钥对。 将弹性IP切换到新实例。 这不是特别优雅,但比完全关机要less得多。

注意:如果您将Elastic IP分配给实例,它将覆盖当前的公共IP,因此您还必须确保更新DNS。

实际上,如果您停止实例,则可以将一个新的密钥对分配给实例,分离根分区(通常为/ dev / sda1)并将其附加到另一个实例。 完成之后,您将可以访问/home/ubuntu/.ssh/authorized_keys。 您可以通过命令行生成一个新的.pem键,并将其粘贴到该文件中。 然后,分离该分区并重新附加到原始实例。 使用新生成的密钥连接到它。

您可以在Google中了解更多关于这些步骤的信息,或者访问http://www.eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html

当你设置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的封锁。 这是天赐之物。

你可以去EC2仪表板,点击'X密钥对'(X是一个数字),创build密钥对。 所以给它一个名字,下载它的一个选项会出现。