我最近将EC2实例中 / var 目录的所有权从“root”更改为“ec2-user”,一旦我这样做,我就无法SSH回服务器(即使端口22在安全组中打开)。现在,当我尝试连接该实例或任何新实例时,我收到此消息:
Error connecting to ________, reason:
-> Connection refused
当我查看系统日志时,我看到了:
启动sshd:/ var / empty / sshd必须由root拥有,而不是group或 世界可写。
[FAILED]
关于如何重新进入服务器的任何想法?我尝试创建一个新实例并在那里安装旧卷,但我甚至无法SSH到新实例,因为我得到相同的“连接被拒绝”消息。
答案 0 :(得分:5)
您应该能够使用新的ebs磁盘和全新的操作系统创建新实例。然后启动它并附加损坏的操作系统磁盘 - 然后您应该能够修改您的文件并修复您的问题。
答案 1 :(得分:0)
重启后,我们也发生了同样的事情。发生这种情况显然是因为(没有更改,没有编辑权限或任何东西)。真是令人讨厌。
要修复它,您需要
-停止实例(除非您拥有与IP关联的弹性IP,否则您将丢失该IP)
-分离根卷
-抓住同一可用区中的另一个实例
-将卷附加到新实例
-启动新实例
-登录到新实例并安装从断开的实例上分离的卷
-转到/ var / empty并修复sshd的所有权和权限(必须为drwx--x--x root:root)
-从新实例注销
-停止
-分离固定体积
-将其重新附加到损坏的实例上(确保您可以使用/ dev / sda1作为根卷附加)
-重新开始愚蠢的事情
-祈祷
如果幸运的话,您现在将可以再次使用ssh。
这已经发生在我们身上大约一年了。我们已经决定将实例移至Digital Ocean,但这可能会帮助其他任何可怜的人。