2

我最近将我的 EC2 实例中的/var目录的所有权从“root”更改为“ec2-user”,一旦我这样做了,我就无法通过 SSH 回到服务器(即使端口 22 在安全性中打开)团体)。现在,当我尝试通过该实例或任何新实例进行连接时,我收到以下消息:

Error connecting to ________, reason:
-> Connection refused

当我检查系统日志时,我看到:

启动 sshd:/var/empty/sshd 必须由 root 拥有,而不是组或全局可写。

[失败的]

关于如何回到服务器的任何想法?我尝试创建一个新实例并在那里安装旧卷,但我什至无法通过 SSH 连接到新实例,因为我收到相同的“连接被拒绝”消息。

4

2 回答 2

5

您应该能够使用新的 ebs 磁盘和新的操作系统创建一个新实例。然后启动它并附加损坏的操作系统磁盘 - 然后您应该能够修改您的文件并解决您的问题。

于 2013-09-24T21:25:50.310 回答
2

重启后我们也会发生同样的事情。这显然只是因为(没有更改,没有编辑权限或任何东西)。这是令人难以置信的烦人。

要修复它,您需要

- 停止实例(您将丢失 IP,除非您有和弹性 IP 相关联)

- 分离根卷

- 在同一可用区抓取另一个实例

- 将卷附加到新实例

-启动新实例

- 登录到新实例并挂载您从损坏实例中分离的卷

- 转到 /var/empty 并修复 sshd 所有权和权限(必须是 drwx--x--x root:root)

- 从新实例注销

-停下来

- 分离固定卷

-re 将其附加到损坏的实例(确保作为根卷附加,可能使用 /dev/sda1)

-重新开始愚蠢的事情

-祈祷

如果幸运的话,您现在可以再次 ssh。

这已经发生在我们身上大约一年了。我们已经决定将我们的实例移至 Digital Ocean,但它可能会帮助那里的任何其他可怜的灵魂。

于 2019-06-18T15:17:52.553 回答