如果创建实例时没有.pem文件,是否可以通过SSH进入我的Amazon EC2服务器实例?


10

我正在使用一些已启动并正在运行的Amazon EC2服务器,我需要通过SSH进入这些服务器。第一次设置服务器时,我没有生成任何密钥(在我到达这里很久之前,有人做了)。如果没有密钥文件,我是否仍可以进入服务器?

FWIW到目前为止,我已经尝试了很多方法来通过SSH进入机箱,包括在EC2仪表板中生成新的密钥对,而且似乎没有任何效果。这篇Amazon AWS支持文章这个答案似乎表明我很不幸,除非我想对当前服务器进行AMI,然后使用它实例化一个全新的EC2服务器实例(只是为了生成.pem文件)那时候)。这真的是我进入包装盒的唯一方法吗?

Answers:


26

简而言之:是的,可以,但是没有一些工作。

您需要执行以下操作:

(对于这些步骤,假设连接时遇到问题的计算机称为server-01。)

首先,在开始这些步骤之前,请对服务器进行快照。

  1. 启动一个新的临时实例。称它为server-02。
  2. 停止server-01。不要终止它,只需停止它。
  3. /从server-01取消附加根()EBS卷,然后将其附加到server-02 /dev/sdb
  4. 登录到server-02,然后运行:$ mkdir /mnt/temp && mount /dev/sdb /mnt/temp。这将在(临时)server-02中挂载server-01的根分区。
  5. 现在,您应该能够:$ vi /home/<user>/.ssh/authorized_keys并复制/粘贴您的公共密钥。完成后,保存并关闭文件。
  6. 现在运行:$ cd / && umount /mnt/temp从server-02卸载server-01的根分区。
  7. 现在,只需从服务器-02取消附加该卷,将其附加回server-01,然后启动server-01。启动时,您应该可以再次使用ssh。

2
只是为了增加这个出色的答案,我发现了这篇博客文章,它是从命令行开始的。alestic.com/2011/02/ec2-fix-ebs-root
Eric

0

在任何人尝试EEAA答案之前的提示,

如果尚未运行iptables saveiptables-save命令来保存配置,则只需重新启动服务器即可。在AskUbuntu上引用了此答案,我了解到,iptables除非将配置显式保存到配置文件中,否则会将配置保存在RAM本身中。

可以轻松地从EC2仪表板重新启动EC2实例,或者 aws-cli


嗯,这似乎是错误地在此处发布的另一个问题的答案。这个问题与防火墙/ iptables无关。
kubanczyk

我的不好,这个答案是关于如果所有IP地址都被阻止,所有流量都被阻止到服务器的情况。让我知道是否需要删除它。
retr0 '19
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.