温馨提示×

centos ssh免密为何失败

小樊
57
2026-09-11 15:31:56
栏目: 智能运维

CentOS 配置 SSH 免密登录失败,常见原因和排查思路如下(按出现频率排序):


一、最常见原因

1. 公钥没放对位置 / 文件名不对

  • 正确路径:~/.ssh/authorized_keys
  • 权限必须是 600
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

2. .ssh 目录权限不对

chmod 700 ~/.ssh
chown -R user:user ~/.ssh

3. SELinux 导致(CentOS 特有,非常常见)

即使权限对,SELinux 也可能拦截

restorecon -Rv ~/.ssh

或临时验证:

setenforce 0

二、SSH 配置问题

4. sshd 未开启公钥登录

检查 /etc/ssh/sshd_config:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

修改后重启:

systemctl restart sshd

5. 家目录权限过松

chmod 755 ~

不能是 777


三、用户与环境问题

6. 用户搞错

  • 公钥放在 A 用户,却用 B 用户登录
  • root 登录被禁止(PermitRootLogin no)

7. 用了错误命令生成密钥

ssh-keygen -t rsa

不要加密码(直接回车)


四、快速排查方法(强烈推荐)

在客户端测试并看详细错误:

ssh -v user@host

重点看:

  • Offering public key
  • Permission denied (publickey)

在服务端看日志:

tail -f /var/log/secure

五、一键检查清单

ls -ld ~ ~/.ssh ~/.ssh/authorized_keys
restorecon -Rv ~/.ssh
systemctl status sshd

如果你愿意,可以把下面信息发我,我可以精确判断:

  1. ssh -v 的输出
  2. /var/log/secure 相关报错
  3. 服务端 CentOS 版本(cat /etc/redhat-release)

0 踩