Ubuntu EC2 实例,更改了根主目录,现在无法通过 SSH 访问

Ubuntu EC2 实例,更改了根主目录,现在无法通过 SSH 访问

我有一个运行 Ubuntu 11.10 的 Amazon EC2 实例。为了快速解决问题,我将 /etc/passwd 中 ubuntu 用户的主目录更改为 /srv/www。现在我无法通过 ssh 进入该框(我假设),因为它找不到 .ssh/authorized_keys

我可以通过 FTP 访问该盒子,并且可以访问 .ssh/authorized_keys 文件,但是目录 /srv/www 由 root 拥有,所以我不能直接将 .ssh 文件夹上传到那里。

有任何想法吗?

答案1

一种典型的方法是停止您的实例(称之为 A)并创建另一个实例,在其中安装 A 的磁盘并解决问题(在您的情况下更改 /etc/passwd)。

答案2

假设您有一个 EBS 根卷,最简单的解决方案可能是:

  • 停止(不是终止)实例
  • 分离 EBS 卷
  • 启动另一个实例
  • 将当前 EBS 卷附加到新实例
  • 通过 SSH 进入新实例,挂载 EBS 卷并进行必要的更改
  • 从新实例中分离 EBS 卷并将其附加为旧实例的根卷
  • 启动旧实例
  • 如果一切正常,终止新实例

相关内容