无密码 SSH 无法工作

无密码 SSH 无法工作

我已多次成功且轻松地设置了无密码 ssh 身份验证(通过 authorized_keys),通常是在之前没有任何自定义 ssh 相关配置更改的服务器上。

现在我需要在 CentOS 服务器上进行设置,之前有其他人禁用了该功能,原因是一位不了解情况的经理表示“担心安全问题”。现在那位经理已经不在了,我不知道该如何操作。

我在 sshd_config 中有这个:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  %h/.ssh/authorized_keys
UsePAM yes

还有其他设置,但我认为它们没有什么区别。有什么建议我应该检查什么才能使其正常工作?

答案1

我见过的最常见原因是 ~/.ssh/authorized keys 的权限太宽松。授权密钥文件必须仅对所有者具有读/写权限 ( chmod 600 ~/.ssh/authorized_keys)。目录本身也不能允许任何写入 ( chmod 700 ~/.ssh)

答案2

您实际上可以注释掉AuthorizedKeysFile,因为它是默认设置。

当前发生故障时服务器会记录什么?您是否已检查 和 的权限.sshauthorized_keys/或禁用StrictModes

如果必要的话,增加LogLevel和/或sshd以分离模式运行。

答案3

快速而简单的解决方案:从可以工作的服务器复制 /etc/ssh/sshd_config 和 /etc/ssh/ssh_config。

您还可以从工作和非工作服务器上的文件中删除所有注释(例如,egrep -v '^#' /etc/ssh/sshd_config | sort | uniq在两台服务器上运行并比较结果。

正如 Alex 所建议的,还要查看目录和文件权限。

相关内容