环境说明:

1. centos 6.x 系统,使用root账户设置秘钥方式登录;

2. 在配置多台主机秘钥时,部分成功,部分不成功;

3. 安全日志 /var/log/secure 已被关闭,没有记录;

4. /etc/selinux/config中SELINUX=disabled。

这个问题困扰了比较长的时间,从网上搜,大部分是说权限的问题,但是我已经设置好了权限,

配置文件/etc/ssh/sshd_config也是一样的,没有理由部分主机可以登录,部分不能登录啊,


权限查看:

ll -d .ssh/

drw------- 2 root root 4096 Dec  6 15:33 .ssh/

ll .ssh/authorized_keys

-rw------- 1 root root 666 Dec  6 13:08 .ssh/authorized_keys

如果不对,可以这样设置:

chmod 700 .ssh/

chmod 600 .ssh/authorized_keys


问题解决:

后来通过ssh的 -d 参数查出了问题

服务端开启临时端口和debug调试信息:

/usr/sbin/sshd -p 10022 -d

客户端链接:

ssh -p 10022 root@192.168.188.51

服务端输出:

略。。。。。。

debug1: trying public key file /root/.ssh/authorized_keys

debug1: fd 4 clearing O_NONBLOCK

Authentication refused: bad ownership or modes for directory /root

略。。。。。。


上面红色字体说明是/root目录权限的问题,登上查看以后,果然是权限不对,修改为755:

chmod 755 /root/

再次登录,一切正常。