我不小心覆盖了 .ssh/authorized_keys 中的条目。
现在我无法使用我的 .pem 文件连接到 EC2 实例。
我尝试生成一个新的 .pem 文件,希望这个过程会向 .ssh/authorized_keys 中添加条目,但是没有成功。我尝试阅读文档,但对我来说有点困惑。
能够给出简化的说明/指示的人将不胜感激。
不幸的是,没有活动的 ssh 会话.. :(
不幸的是,没有活动的 ssh 会话.. :(
准备一个正确的authorized_keys
文件副本。从其他实例获取它,或从头开始重建它,或从快照中获取它,或使用新的pem文件,或任何其他方法。
停止您无法访问的实例(不要终止它)。这个步骤是不可避免的。如果无法停止实例,因为它正在运行重要的任务,那么您将无法进行下一步操作。
从已停止的实例中卸载根卷。它应该类似于/dev/sda1
。一定要给它一个名称,以便您可以在卷列表中找到它。
将其附加到另一个实例的另一个挂载点,例如/dev/sdp
。
将该卷挂载到该实例上的tmpdir中。例如,使用mkdir /tmp/myrootvol && mount /dev/xvdp /tmp/myrootvol
。请注意,设备名称将根据您使用的Linux版本(如果您完全使用Linux)而有所不同。更旧的版本将使用不同的命名规则。
此时,您有一个文件系统,一个根卷,挂载在/tmp/myrootvol
。修复authorized_keys
文件,然后卸载设备并分离卷。
将卷重新附加到原始实例的/dev/sda1
或其他设备名称上。
重新启动该实例。
这样,您就可以访问EC2实例了。但是,哇,这真是一件痛苦的事情,不是吗?