在EC2 SELinux实例上丢失密码

正如标题所说,我有一个EC2上的SELinux实例,我还没有使用一段时间。 自从发射回来以来,我一直无法通过ssh来访问它。 我以前曾经从这台机器上访问过它,并且AWS上的安全组内容被设置为允许ssh访问。

我根本无法login到机器,所以我所有的修复都被限制在我能做的事情上,把根卷挂载到一个新的EC2实例上,并以我能做到的方式做。

以下是我迄今为止所尝试的:

1)尝试将我的ssh密钥复制到ssh用户的authorized_keys文件中。 当我尝试SSH时,密码提示仍然存在。

2)validationsshd_config有PasswordAuthentication no

3)使用chroot设置挂载的卷为root,然后重置用户的密码,我试图login为。 从这里没有任何错误,但新的密码不通过ssh的提示工作。

4)我使用的ssh密钥没有密码,所以这不是我被提示的密码。

5)再次使用chroot,我尝试使用.ssh文件夹中的'restorecon'命令为有问题的用户

6)确保用户的.ssh目录的权限设置为700,并且.ssh / authorized_keys文件将其设置为600

到目前为止,还是没有喜悦。 我还有什么可以尝试?

通过sshd一个问题不会让别人通过authorized_keys,除非authorized_keys和.ssh目录具有正确的权限:

chmod 700 /home/username/.ssh chmod 600 /home/username/.ssh/authorized_keys 

(用SSH用户的用户名replace用户名)

此外,sshlogin错误logging在/ var / log / secure(如果您使用除RedHat克隆以外的其他文件,可能是另一个文件),因此在文件中查找sshlogin错误将有助于排查和解决此问题。

原来SELinux属性不好。 我必须将驱动器挂载到不同的实例,在/etc/selinux/config更改enforcing = 0,然后重新挂载并启动不带SELinux的引导程序,然后我必须重新标记整个文件系统(至less,我决定手动重新touch /.autorelabel一堆之后,再find更多),通过touch /.autorelabel ,然后再重新启动。