CentOS 6.5 免密登陆问题排查,服务器ssh服务器运行正常,使用用户名和密码登陆服务器正常,但是使用秘钥登陆一直失败,于是先排查sshd配置文件/etc/ssh/sshd_config
,支持秘钥认证登陆
1 | RSAAuthentication yes |
修改文件重启ssh服务后,仍旧不能免密登陆。于是排查各文件和文件夹权限,修改为
1 | drwx------. 3 root root 4096 7月 18 20:22 /root |
还是不行,从客户端ssh -v
显示的信息依旧看不出什么问题,接下来排查ssh服务器日志。
ssh 服务器日志排查
ssh服务器日志位于 /var/log/secure
,默认日志记录的INFO信息,需要修改日志记录级别为DEBUG,修改/etc/ssh/sshd_config
文件中LogLevel INFO
为 LogLevel DEBUG
,重启ssh服务器service sshd restart
。
尝试ssh登陆,发现问题在于不能读取authorized_keys
1 | Jul 18 23:01:05 centos sshd[1564]: debug1: trying public key file /root/.ssh/authorized_keys |
执行:restorecon -FRvv ~/.ssh
, 解决问题。
问题分析
该问题本质应该是authorized_keys
文件的context不正确,正常情况下应该是ssh_home_t
,如果是admin_home_t
则是错误的。可以使用estorecon
命令进行恢复。
1 | [root@centos ~]# ls -alZ .ssh/ |