一、知识点补充:
在客户端来看,SSH提供两种级别的安全验证
第一种级别(基于密码的安全验证),知道帐号和密码,就可以登录到远程主机,并且所有传输的数据都会被加密。
第二种级别(基于密钥的安全验证),需要依靠密钥,也就是你必须为自己创建一对密钥,并把公有密钥放在需要访问的服务器上。
二、问题描述
集群一台主节点master,用到第二种级别,运行的用户是hadoop2,现在配置了公钥登录后,ssh连接还是显示输入密码。
三、问题呈现
1、生成免密钥对
2、复制公钥,10.1.9.214也就是本机master
3、验证,还是提示密码输入
四、排查
1、调出debug模式
2、切换root,查看sshd_config配置文件,没发现异常
5、查看权限,也正常
6、man一下sshd 帮助信息
6.1 可以看到-d选项是调试模式
6.2 默认指定22端口,可以指定其他端口
五、解决
1、sshd指定一个端口1234启动
visudo添加/usr/sbin/sshd权限,即可解决
重新启动
2、然后打开另一个窗口,连接
3、返回启动服务1234窗口,这时出现debug信息
从debug信息,可以看出Authentication refused: bad ownership or modes for directory /home/hadoop2,显然这个目录权限有问题!
4、现在去这个目录下验证
额,775目录权限,系统默认umask是0022,即755的权限。
5、修改回来755
六、最后验证,正常
本文转自 zouqingyun 51CTO博客,原文链接:/zouqingyun/1874410,如需转载请自行联系原作者
如果觉得《配置ssh公钥登录提示还是输入密码》对你有帮助,请点赞、收藏,并留下你的观点哦!