我有一个运行 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 卷并将其附加为旧实例的根卷
- 启动旧实例
- 如果一切正常,终止新实例