Linux无法免密登录的原因
一、免密登录的方法
下面操作是把/root/.ssh/id_dsa.pub文件内容追加到192.168.7.100系统中的/root/.ssh/authorized_keys文件中
# 创建并发送密钥,第一次登录需要输入yes ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1 ssh-copy-id -i /root/.ssh/id_dsa.pub root@192.168.7.100 ssh 192.168.7.100
二、一般无法登录的原因有以下几种
- 检查~/.ssh目录的权限是否为700
- 检查~/.ssh/authorized_keys文件的权限是否为600
- 检查~/.ssh/authorized_keys文件中的公钥是否正确
- 检查/etc/ssh/sshd_config 中的 AuthorizedKeysFile .ssh/authorized_keys 文件名是否正确
三、我遇到的问题未在上述原因中
按上以操作完成之后,ssh登录还是提示要输入密码,于是检查以上几项,都正确。此时需要查看secure安全日志
# ssh 192.168.7.73
root@192.168.7.73's password:
# tailf /var/log/secure Jun 19 14:57:58 linux-node3 sshd[30446]: Authentication refused: bad ownership or modes for directory /root
发现和root目录权限有关系
# 查看当前/root目录的权限 # ll -d /root/ drwxr-xr-x. 4 1000 1000 4096 Jun 19 14:56 /root/ # 正常系统的权限 # ll -d /root/ dr-xr-x---. 8 root root 4096 Jun 19 14:55 /root/ # 调整/root目录的权限 # chmod 550 /root/ # chown root.root /root/
修改完成之后,再测试免密正常已正常
[root@jenkins ~]# ssh 192.168.7.73 Last login: Wed Jun 19 15:07:08 2019 from 192.168.25.50 [root@linux-node3 ~]#