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

相关推荐

  1. ssh登录

    2024-05-13 23:28:02       65 阅读
  2. ssh 登录

    2024-05-13 23:28:02       51 阅读
  3. SSH登录

    2024-05-13 23:28:02       31 阅读
  4. ssh登录

    2024-05-13 23:28:02       29 阅读
  5. Linux服务器设置 SSH 通过登录(登录)

    2024-05-13 23:28:02       49 阅读
  6. postgresql设置登录

    2024-05-13 23:28:02       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-13 23:28:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-13 23:28:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-13 23:28:02       82 阅读
  4. Python语言-面向对象

    2024-05-13 23:28:02       91 阅读

热门阅读

  1. Gauss数据库备份恢复

    2024-05-13 23:28:02       27 阅读
  2. leetcode题目122

    2024-05-13 23:28:02       32 阅读
  3. 如何在服务器上下载,解压github上的代码

    2024-05-13 23:28:02       35 阅读
  4. 【C++ 刷题必备技巧】

    2024-05-13 23:28:02       35 阅读
  5. mac 安装homebrew

    2024-05-13 23:28:02       27 阅读
  6. nvm切换node版本命令

    2024-05-13 23:28:02       37 阅读
  7. MySQL中的函数

    2024-05-13 23:28:02       35 阅读
  8. Python实战开发及案例分析(14)—— 随机森林

    2024-05-13 23:28:02       26 阅读