用户在集群节点间的互信丢失
问题现象
在给某个用户配置好互信之后,有时候信任关系会突然丢失,ssh时提示需要输入密码。
sc_ssh@node1:~/.ssh> ssh node2 Password:
可能原因
- sshd服务未运行。
- 防火墙禁止ssh访问。
- 当前用户对根目录的权限不足。
- 当前用户对公钥文件的权限不足。
- “known_hosts”文件里记录的key和IP地址冲突。
- 公钥不匹配。
操作步骤
- 确认是否由于sshd服务未运行。
- 执行命令service sshd status查看sshd服务状态。
- 如果sshd服务关闭,使用service sshd start启动sshd服务。
- 确认是否由于开启了系统防火墙导致ssh互信丢失。
- 执行命令service iptables status查看集群防火墙状态。
- 如果显示系统防火墙打开,使用service iptables stop命令关闭防火墙,或根据设置操作系统防火墙来配置防火墙。
- 确认是否由于当前用户对根目录的权限不足。
- 使用ll命令查看根目录属性,确认目录属组是否为互信用户的属组,同时确认用户对目录是否有读和写权限。
- 如果权限不足,用chown命令修改文件属组,用chmod命令修改目录权限,使其满足要求。
- 确认是否由于当前用户对公钥文件的权限不足。
- 查看“~/.ssh/id_rsa.pub”文件,确认文件属组是否为互信用户的属组,同时确认用户对文件是否有读和写权限。
- 用chown命令修改文件属组,用chmod命令修改目录权限使其满足要求。
- 确认是否由于“known_hosts”文件里记录的key和IP地址冲突。
查看“~/.ssh/known_hosts”文件里记录的key和IP地址是否一致,如果不一致,可能是由于所指定的IP发生了变化等原因导致了异常。此时,删除“.ssh/known_hosts”文件里面原来的公钥信息即可。
- 确认是由于公钥不匹配。
排除掉上面的所有原因后,如果问题仍存在,可能是公钥不匹配。此时,请删除公钥目录.ssh下的所有文件,并通过gs_sshexkey命令去手动创建互信,gs_sshexkey命令请参考gs_sshexkey章节。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。