修改一台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)