![系统上的某个用户无法通过公钥进行 SSH 身份验证](https://linux22.com/image/1386074/%E7%B3%BB%E7%BB%9F%E4%B8%8A%E7%9A%84%E6%9F%90%E4%B8%AA%E7%94%A8%E6%88%B7%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87%E5%85%AC%E9%92%A5%E8%BF%9B%E8%A1%8C%20SSH%20%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81.png)
我无法为系统上的某个特定用户设置公钥身份验证。我检查了用户主目录和 .ssh 目录权限,没有问题(drwx------. 两者都有,与其他可以通过公钥进行身份验证的用户相同)。我在互联网上找到了一条建议,建议停止 sshd 并使用 -ddd 选项运行它以获取更多信息(sudo /usr/sbin/sshd -ddd)。奇怪的是,如果我以这种方式运行它,那么它对用户来说是有效的。
对于这种奇怪的行为有什么想法吗?
答案1
尝试适当的 SELinux 文件安全上下文。
# restorecon -Rv /home/troubleduser/.ssh
答案2
原来是 SELinux(安全增强型 Linux)阻止 sshd 读取用户目录中的授权密钥。我检查它是否已启用sestatus
,我用 echo 0 >/selinux/enforce 禁用它,它开始工作。我在 /etc/selinux/config 中永久禁用它