EC2 Ubuntu 实例上的根账户被锁定

EC2 Ubuntu 实例上的根账户被锁定

我设法通过将一些权限更改为 .ssh 将自己锁定在 Amazon EC2 Ubuntu 实例的根帐户之外。

以下是我尝试过但失败了的步骤。

  1. 创建一个新的临时实例(自行创建一个卷)。
  2. 停止旧实例。在此步骤中,我可以登录到新实例。
  3. 从旧实例中分离 EBS 卷(卷为 /dev/sda1)。
  4. 将旧卷附加到 /dev/sdb1 上的新实例。

实际结果:5. 重新启动新实例,现在无法登录,权限密钥错误。PS:如果我不重新启动新实例,我可以登录,但当我使用 mount /dev/sdb1 /mnt 进行安装时,出现错误“找不到驱动器”。

预期结果:5. 在新实例中安装设备。6. 编辑 sudoers 文件。7. 卸载设备。8. 分离卷。9. 将卷附加到 /dev/sda1 上的旧实例。10. 启动旧实例。11. 将旧实例链接回弹性 IP 地址。12. 再次开始呼吸。13. 删除临时实例。

答案1

不确定这是否会起作用,但是与您上面所做的不同。

将旧的 EBS 驱动器实例附加到 /dev/sdb2 并且不要分离当前的 /dev/sdb1,因为它正在运行一个您仍然可以通过 SSH 进入的实例。

在新的运行实例中,你应该能够运行

sudo mount /dev/sdb2 /mnt
chmod /home/ubuntu/.ssh 700

# assumes the home directory is the default ubuntu one 
# for ubuntu/debian instances.

其次是:

sudo umount /mnt

现在在 EC2 控制台中分离驱动器并将其重新连接到旧实例并重新启动。希望现在您能够重新使用 ssh。

答案2

看起来您已成功用损坏实例中的驱动器替换临时实例中的驱动器。

这听起来不像是你的问题,但以防万一……如果你从市场上的 AMI 开始,则无法分离根卷来进行此类修复。显然是为了“保护”市场供应商免受他人更改其内容。

答案3

@Matt:谢谢你的帮助。我能够让它工作。我需要将旧卷连接到新实例而无需重新启动,然后安装它。出于某种原因,网络上的 AWS 控制台显示 dev/sda1,但当我查看日志时,驱动器是 dev/zsda1。

以下是有效的步骤(只需确保卷名称正确)

1.创建一个新的临时实例(自己创建一个卷)。 2.停止旧实例。在此步骤中,我可以登录到新实例。 3.从旧实例中分离 EBS 卷(卷为 /dev/sda1)。 4.将旧卷附加到 /dev/sdb1 上的新实例。 5.在新实例中安装设备。 6.编辑 sudoers 文件。 7.卸载设备。 8.分离卷。 9.将卷附加到 /dev/sda1 上的旧实例。 10.启动旧实例。 11.将旧实例链接回弹性 IP 地址。 12.再次开始呼吸。 13.删除临时实例。

相关内容