天天看点

SSH登录报pam_unix(sshd:auth): authentication failure的案例

修改一台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 选项的情况下才允许使用公钥认证登录。同时其它认证方法全部被禁止。这个值常用于做远程备份之类的事情

SSH登录报pam_unix(sshd:auth): authentication failure的案例

这篇博客“sshd_config 中 PermitRootLogin 的探讨”对这个参数做了详细深入的介绍,有兴趣移步学习了解:

参数类别

是否允许ssh登陆

登录方式

交互shell

yes

允许

没有限制

without-password

除密码以外

forced-commands-only

仅允许使用密钥

仅允许已授权的命令

no

不允许

N/A

参考资料:

javascript:void(0)

继续阅读