EC2 SELinux 实例上的密码丢失

EC2 SELinux 实例上的密码丢失

正如标题所述,我在 EC2 上有一个 SELinux 实例,我已经有一段时间没用了。自从重新启动它以来,我一直无法通过 ssh 访问它。我过去曾从这台机器访问过它,AWS 上的安全组设置允许 ssh 访问。

我根本无法登录到机器,所以我所有的修复都仅限于通过将根卷安装到新的 EC2 实例并以这种方式执行我能做的事情。

以下是我迄今为止尝试过的方法:

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

2)验证 sshd_config 是否有 PasswordAuthentication

3) 使用 chroot 将挂载的卷设置为 root,然后重置我尝试登录的用户的密码。这没有错误,但新密码在 ssh 提示符下不起作用。

4)我使用的 ssh 密钥上没有密码,因此这不是我被提示的内容。

5)再次使用 chroot,我尝试对相关用户的 .ssh 文件夹使用“restorecon”命令

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

到目前为止,仍然没有成功。我还能尝试什么?

答案1

sshd 的一个陷阱是,除非 authorized_keys 和 .ssh 目录都具有正确的权限,否则它不会让某人通过 authorized_keys 进入:

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

(将 username 替换为 SSH 用户的用户名)

此外,ssh 登录错误记录在 /var/log/secure 中(如果您使用的是 RedHat 克隆以外的其他版本,则可能是其他文件),因此在文件中查找 ssh 登录错误将有助于排除故障并解决此问题。

答案2

事实证明 SELinux 属性有问题。我不得不将驱动器安装到不同的实例,更改 enforcing=0,/etc/selinux/config然后重新安装并在不使用 SELinux 的情况下启动,然后我必须重新标记整个文件系统(至少,在手动重新标记一堆并发现更多之后,我决定这样做),touch /.autorelabel然后再次重新启动。

相关内容