我需要知道访问Amazon EC2中正在运行的实例的任何方法。
- 我没有原始的密钥对".pem"文件。
- 我可以访问AWS管理控制台。
- 终止/重启是不可行的。
我找到了最接近我的问题的这个,但我希望事情已经改变。
有没有办法下载该pem文件或分配新的密钥对?
我需要知道访问Amazon EC2中正在运行的实例的任何方法。
我找到了最接近我的问题的这个,但我希望事情已经改变。
有没有办法下载该pem文件或分配新的密钥对?
实际上,您只有在停止实例、卸载根分区(通常为/dev/sda1)并将其附加到另一个实例时才能为实例分配新的密钥对。
完成这些操作后,您将可以访问/home/ubuntu/.ssh/authorized_keys文件。您可以通过命令行生成一个新的.pem密钥,并将其粘贴到该文件中。
然后,您将卸载该分区并重新附加到原始实例。使用新生成的密钥连接到它。
您可以在Google或此处了解更多信息。
当您设置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,这个方法真是太好用了。