修改一台Linux服务器(RHEL 6.6)的root密码后,然后使用ssh验证测试时,发现其提示“密码验证失败.请检查用户名和密码是否正确”,仔细核对,账号密码确实没有错误。但是检查日志/var/log/secure发现下面错误信息
因为当前我是通过JumpServer连接到这台服务器的,验证测试则是直接从我笔记本通过ssh连接测试,之前遇到过“Linux ssh突然连接不了的案例浅析”“,所以检查/etc/ssh/sshd_config设置是否允许我的笔记本ssh访问。发现配置没有错误。
然后又检查/etc/hosts.deny是否禁止这台机器访问,发现没有这种配置。
实在是有点懵逼了,屡次尝试都没有找到root cause反而激起了我不服输的斗志,一定要搞清楚到底是什么原因,然后仔细一项一项检查,最后发现是因为/etc/ssh/sshd_config的PermitRootLogin选项为no禁止root账号登录,瞬间汗颜了!!! 平时都是通过JumpServer登录,反而忘记了这台服务器禁止root登录。
关于PermitRootLogin,它表示是否允许 root 登录。它有下面几个选项:
"yes"(默认) 表示允许。
"no"表示禁止。
"without-password" 表示禁止使用密码认证登录。只允许root用public key认证方式登录
"forced-commands-only" 表示只有在指定了 command 选项的情况下才允许使用公钥认证登录。同时其它认证方法全部被禁止。这个值常用于做远程备份之类的事情

这篇博客“sshd_config 中 PermitRootLogin 的探讨”对这个参数做了详细深入的介绍,有兴趣移步学习了解:
参数类别
是否允许ssh登陆
登录方式
交互shell
yes
允许
没有限制
without-password
除密码以外
forced-commands-only
仅允许使用密钥
仅允许已授权的命令
no
不允许
N/A
参考资料:
javascript:void(0)