Hugo博客公告弹窗

SSH 免密登录,设置好仍然需要密码登录解决方法

   
文章摘要
摘要小助理今天溜号啦……😜

说明: ssh秘钥登录设置好了,但是登录的时候依然需要提供密码

查看系统安全日志,定位问题

sudo cat /var/log/auth.log

或者

sudo cat /var/log/secure

找到下面的信息

Authentication refused: bad ownership or modes...

(网上的图片)

(我的)

for directory 或者 for file 后面跟着的就是指出什么文件或文件夹

原因排查

我的这条日志说明 SSH 服务器拒绝了基于密钥的认证,原因是 /root/.ssh/authorized_keys 文件的所有权或权限模式设置不正确。(你的原因可能和我不一样,但是方法是一样的)

authorized_keys 文件存储了允许使用 SSH 密钥登录的公钥。如果这个文件的权限设置不当,SSH 服务器将拒绝基于密钥的认证,从而要求输入密码进行登录认证。

解决办法

解决方法是检查 /root/.ssh/authorized_keys 文件的所有权和权限,确保它只对 root 用户可读写:

所有权应为 root:root

chown root:root /root/.ssh/authorized_keys

权限应为 600 (所有者可读写)

chmod 600 /root/.ssh/authorized_keys

如果 /root/.ssh 目录存在,也要检查它的权限为 700 (所有者可读写执行)

chmod 700 /root/.ssh

做完这些更改后,重新尝试 SSH 密钥登录,应该就不需要输入密码了。如果仍有问题,可以检查 SSH 服务器和客户端的其他配置。

提供一个自用的SSH免密登录脚本

curl -sS -O https://raw.githubusercontent.com/woniu336/open_shell/main/ssh-v.sh && chmod +x ssh-v.sh && ./ssh-v.sh

CC BY-NC-SA 4.0 转载请注明
最后更新于 2024-12-03 08:00
clarity统计