4

我在 Amazon AWS EC2 上运行 Ubuntu 实例。我有一个名为 ubuntu 的 root 用户。我还有另一个名为 ellis 的用户。我的 ubuntu 用户是管理用户,可以控制所有其他用户并在根目录中创建文件和目录。

当我将 .ssh/authorized_keys 从 /home/ubuntu/.ssh/authorized_keys 复制到 /home/ellis/.ssh 时,我一定不小心删除了 ubuntu 中的目录 .ssh。现在,我无法以 ubuntu 身份登录我的实例,只能以 ellis 身份登录。我尝试在 ellis 中更改权限以获取对 ubuntu 的访问权限,但没有成功。

我使用 FileZilla 作为 ellis 并且能够看到 ubuntu 中的目录和文件,这就是为什么我知道 .ssh 已从 ubuntu 中删除。

我需要能够访问ubuntu。我已经尝试将我的 ssh 目录从 ellis 复制到 ubuntu,但是使用设置的权限,其他用户无法进行任何管理。有任何解决这个问题的方法吗?

4

1 回答 1

9

您仍然可以通过将磁盘附加到另一个实例来访问该磁盘。这样,您可以复制一个新的密钥文件。

尝试这个:

  • 停止您的实例(我们称之为Instance A
  • 启动另一个 Linux 实例或使用您已有的实例(我们称之为Instance B
  • 从实例 A 中分离您的根 EBS 卷(我们称之为Volume A)——记下挂载设备,例如/dev/sda1
  • 通过控制台将卷 A 作为 /dev/sdf 附加到实例 B。虽然提供的设备名称是 /dev/sdf,但 aws 可能会将其附加为 /dev/xvdf 或 /dev/xvdf1。如果您没有看到 /dev/sdf 或 /dev/xvdf 或 /dev/xvdf1,您可能需要重新启动实例 B

  • 尝试挂载卷 /dev/xvdf 或 /dev/xvdf1,访问内容,导航到ubuntu用户的主目录,存储正确的 ssh-key

  • 从实例 B 中分离卷 A
  • 将卷 A 附加到实例 A(在与上述相同的挂载设备上)
  • 启动实例 A 并尝试登录
于 2015-10-16T02:55:34.687 回答