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

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

我正在使用一些已启动并正在运行的 Amazon EC2 服务器,我需要通过 SSH 进入这些服务器。我没有在首次设置服务器时生成的任何密钥(在我来这里之前很久就有人生成了)。如果没有密钥文件,我还能进入服务器吗?

到目前为止,我已经尝试了很多方法通过 SSH 进入该框,包括在 EC2 仪表板中生成新的密钥对,但似乎没有任何效果。此 Amazon AWS 支持帖子这个答案似乎表明我运气不佳,除非我想为当前服务器创建 AMI,然后使用它来实例化一个全新的 EC2 服务器实例(只是为了获取当时生成的 .pem 文件)。这真的是我现在唯一能进入的方法吗?!

答案1

简而言之:是的,你可以,但是必须付出一些努力。

您需要执行以下操作:

(对于这些步骤,假设您难以连接的机器名为 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-01 的根分区挂载到(临时)server-02 中。
  5. 现在您应该能够:$ vi /home/<user>/.ssh/authorized_keys复制/粘贴您的公钥。完成后,保存并关闭文件。
  6. 现在运行:$ cd / && umount /mnt/temp从 server-02 卸载 server-01 的根分区。
  7. 现在,只需从 server-02 取消连接该卷,将其重新连接到 server-01,然后启动 server-01。当它启动时,您应该能够再次 ssh 登录。

答案2

在任何人尝试之前只需提示欧洲经济合作与发展组织的回答是,

如果你还没有运行iptables saveiptables-save命令来保存配置,那么只需重新启动服务器即可。引用此答案询问Ubuntu,我了解到,iptables除非您明确将其保存到配置文件中,否则它会将您的配置保存在 RAM 本身中。

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

相关内容