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 的安全措施。


实际排查过程中,还出现了很多弯路,试了很多次才找到问题原因。而且我发现,之前大语言模型还能根据提示一次只排查一个步骤,现在不知道为什么,豆包和通义都倾向于一次让我操作多步。。。

另外,检查日志这么直接的思路,我第一时间竟然没想到。。。

### `cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys` 的作用及相关知识 `cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys` 这一命令的主要作用是将本地的 SSH 公钥(存于 `~/.ssh/id_rsa.pub` 文件)追加到 `~/.ssh/authorized_keys` 文件中。在 SSH 认证体系里,`~/.ssh/authorized_keys` 文件记录了被授权登录当前账户的所有公钥。当客户端借助 SSH 协议尝试登录服务器时,服务器会把客户端提供的公钥与 `~/.ssh/authorized_keys` 文件中的公钥进行比对,若匹配成功,就允许客户端登录。 `cat` 命令用于显示文件内容,`>>` 是重定向操作符,其功能是把前面命令的输出追加到后面指定的文件里。所以,`cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys` 会把 `~/.ssh/id_rsa.pub` 文件的内容添加到 `~/.ssh/authorized_keys` 文件的末尾。要是 `~/.ssh/authorized_keys` 文件不存在,系统会自动创建该文件 [^2][^3]。 ### `chmod 600 ~/.ssh/authorized_keys` 的作用及相关知识 `chmod 600 ~/.ssh/authorized_keys` 命令的作用是修改 `~/.ssh/authorized_keys` 文件的权限。`chmod` 是用于更改文件或目录权限的命令,后面的 `600` 是权限设置的参数。在 Linux 系统中,文件权限分为读(r)、写(w)、执行(x)三种,分别用数字 4、2、1 表示。权限设置参数由三个数字组成,依次对应文件所有者、所属组和其他用户的权限。`600` 意味着文件所有者拥有读和写的权限(4 + 2 = 6),而所属组和其他用户没有任何权限(0)。 在 SSH 认证中,为了保障安全,`~/.ssh/authorized_keys` 文件的权限必须设置为 `600`。这是因为该文件包含了授权登录的公钥信息,若权限设置不当,其他用户可能会修改该文件,进而影响 SSH 认证的安全性。此外,`.ssh` 目录的权限通常需要设置为 `700`,也就是所有者拥有读、写和执行的权限,所属组和其他用户没有任何权限 [^1][^5]。 示例代码如下: ```bash # 将本地公钥追加到 authorized_keys 文件 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 修改 authorized_keys 文件的权限 chmod 600 ~/.ssh/authorized_keys # 修改 .ssh 目录的权限 chmod 700 ~/.ssh ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小郎碎碎念

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值