启动 sshd:/etc/ssh/sshd_config:权限被拒绝

启动 sshd:/etc/ssh/sshd_config:权限被拒绝

我在 Amazon 云中运行 Centos 机器。突然,我无法通过 ssh 进入它。幸运的是,正在运行的 R Studio 包括运行 BASH shell 的功能。因此,我在 /var/log/boot.log 中看到 sshd 启动失败。

当我从命令行运行它时,sudo service sshd start我收到一个错误Starting sshd: /etc/ssh/sshd_config: Permission denied。我尝试将 sshd_config 权限设置为 644 或 600 - 但出现相同的错误。我也尝试过sudo su -然后启动服务。

这并不是 shell 本身的限制:我可以毫无问题地启动 httpd。

我甚至不知道还能尝试什么……

答案1

我遇到了同样的问题,感谢 Felix 的回答,我可以确认这也是一个 SELINUX 错误:

# grep "sshd_config" /var/log/audit/audit.log
...
type=AVC msg=audit(1585907328.579:143): avc:  denied  { read } for  pid=1207 comm="sshd" name="sshd_config" dev="dm-0" ino=443439 scontext=system_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=system_u:object_r:unlabeled_t:s0 tclass=file
...

然后我可以通过恢复默认上下文来解决错误:

# restorecon /etc/ssh/sshd_config

这样,SELINUX 就不需要被禁用了。

答案2

事情是这样的...图像出现了问题(具体信息如下:https://bugzilla.redhat.com/show_bug.cgi?id=956531)。因此,作为故障排除的一部分,我在另一台机器上安装了 EBS 驱动器,并“清理”了 sshd_config。导致 SELINUX 拒绝访问此文件,错误消息是由 SELINUX 引起的;而不是由文件权限引起的。一旦我禁用 SELINUX,sshd 就可以正常工作了。

世界被拯救了:)

相关内容