ssh 配置了.ssh/authorized_keys 依旧需要密码的问题
问题如题目:ssh 配置了.ssh/authorized_keys 依旧需要密码
这次排查问题的重点,依旧是重度依靠 AI,具体提示词可以参考我之前的这个文章。
这次用豆包试了好几次,都没有给出正确思路。后来换了通义一把搞定!不过有的时候通义发挥也不稳定,就很难评。之前有一次实在都不行试了 Claude 才好使,真的得多尝试几种模型吧。
豆包和通义都建议首先排查 sshd 的配置,我这里显示,这个配置是没有问题的
grep -i "PubkeyAuthentication" /etc/ssh/sshd_config
然后豆包和通义,都明确只出了 ssh 功能对于 .ssh/authorized_keys
文件 的权限非常敏感,我这边也按照提示检查了文件的读写权限,确认无误
豆包和通义接下来都建议检查日志,不过因为 sshd 是通过 systemctl 管理的,所以自然他们都建议使用 journalctl 来查看链接日志
不过我这边实际情况是,journalctl 无法输出任何日志。但是通义提出了两个查看日志的方案,方案 2 中(sudo tail -n 50 /var/log/auth.lo
)可以看到明显的排查方向
sshd[3419662]: Authentication refused: bad ownership or modes for directory /home/xxx
这里的含义是,家目录的权限存在问题,我把这个信息给到通义,果然指出因为家目录配置了 777 的权限,权限过高时,ssh 是不允许通过密钥的方式登录的,这显然是为了防止有人偷偷将自己的公钥写入 .ssh/authorized_keys 的安全措施。
实际排查过程中,还出现了很多弯路,试了很多次才找到问题原因。而且我发现,之前大语言模型还能根据提示一次只排查一个步骤,现在不知道为什么,豆包和通义都倾向于一次让我操作多步。。。
另外,检查日志这么直接的思路,我第一时间竟然没想到。。。