在使用非root用户,配置集群免密登录时,发现配置完了免密登录仍然需要输入密码。
查看了系统安全日志后,发现报错。
# 查看系统安全日志命令
sudo cat /var/log/secure | grep sshd
# 看时间范围内的错误的日志信息
Sep 1 17:25:53 node001 sshd[47211]: Authentication refused: bad ownership or modes for directory /home/dawson
0 首先先要配置好免密登录,即最少满足以下条件
- 当前服务器的当前用户的家目录下有
.ssh
文件,且 .ssh 文件中包含id_rsa
id_rsa.pub
known_hosts
三个文件。 - 要被免密登录的服务器的对应的用户家目录下有
.ssh
文件,且 .ssh 文件中包含authorized_keys
文件,且文件内容中包含发起免密登录的服务器的id_rsa.pub
文件中的内容。
此处不懂原因可以去查看这篇文章。ssh免密登录原理及实现
1 尝试修改当前用户家目录下的.ssh文件的权限
cd ~
chmod 700 .ssh
# 转到你要免密登录的节点
ssh ${yourUserName}@${yourNodeHost}
cd ~/.ssh
chmod 600 authorized_keys
# 回到当前节点
exit
# 再次尝试免密登录是否成功
ssh ${yourUserName}@${yourNodeHost}
2 若配置1后免密登录仍需输入密码,则尝试修改ssh配置文件
# 当前节点,及要免密登录的节点都需要配置
sudo vim /etc/ssh/sshd_config
# 修改如下配置信息,如果已经被注释,则删除掉注释
AuthorizedKeysFile .ssh/authorized_keys
PubkeyAuthentication yes
StrictModes no
# vim编辑器中通过 /AuthorizedKeysFile 方式搜索
# 全部修改完成后,重启ssh服务
systemctl restart sshd.service
# 每个节点都修改完毕后重新尝试ssh命令
ssh ${yourUserName}@${yourNodeHost}