我正在使用一些已启动并正在运行的 Amazon EC2 服务器,我需要通过 SSH 连接到服务器。我没有在服务器首次设置时生成的任何密钥(其他人在我到达这里之前很久就已经生成了)。没有密钥文件我还能进入服务器吗?
FWIW 到目前为止,我已经尝试了很多方法将 SSH 连接到盒子中,包括在 EC2 仪表板中生成新的密钥对,但似乎没有任何效果。这个 Amazon AWS 支持帖子和这个答案似乎表明我运气不好,除非我想为我当前的服务器创建一个 AMI,然后用它来实例化一个全新的 EC2 服务器实例(只是为了生成 .pem 文件当时)。这真的是我现在进入盒子的唯一方法吗?!
简而言之:是的,你可以,但不是没有一些工作。
您需要执行以下操作:
(对于这些步骤,假设您在连接时遇到问题的机器称为 server-01。)
首先,在开始这些步骤之前,为您的服务器拍一张快照。
/
) EBS 卷,并将其附加到 server-02,例如/dev/sdb
.$ mkdir /mnt/temp && mount /dev/sdb /mnt/temp
:这将在(临时)server-02 中安装 server-01 的根分区。$ vi /home/<user>/.ssh/authorized_keys
并复制/粘贴您的公钥。完成后,保存并关闭文件。$ cd / && umount /mnt/temp
从 server-02 卸载 server-01 的根分区。在任何人尝试EEAA的答案之前的提示,
如果您还没有运行
iptables save
或iptables-save
命令来保存您的配置,那么只需重新启动服务器即可。引用AskUbuntu上的这个答案,我了解到iptables
将您的配置保存在 RAM 本身中,除非您明确地将其保存到配置文件中。EC2 实例可以很容易地从 EC2 仪表板或
aws-cli