2017-04-18 56 views
0

我們假設我輸入grep /etc/ssh/sshd_config '^PasswordAuthentication no$'並獲得滿意結果。安全審計:如何檢查ssh服務器是否要求輸入密碼

如何檢查正在運行的服務器實際上是否正在使用該配置(即,自從更改後它已重新啓動)?

我正在尋找一種經驗性的方式,通過使用ssh客戶端以腳本化的方式得到一個明確的「是的,這個ssh服務器將接受密碼」或明確的「不,此服務器上不允許密碼」。

很明顯,我可以手動運行ssh [email protected]$HOST -i /path/to/badkey,然後等待並看看我是否收到密碼提示,但這不會是可編寫腳本的(即使它是,它總是會以錯誤狀態退出)。

這不是check is SSH prompt for password or not的重複,因爲給出的用例導致了不同問題的答案。

回答

1

你可以運行這個命令:

ssh -v -o Batchmode=yes [email protected] 

然後尋找這一行的詳細輸出:

debug1: Authentications that can continue: publickey,keyboard-interactive 

此列出的身份驗證方法的服務器是準備接受。值「password」表示用戶可以通過提供密碼進行認證。 「鍵盤交互」類似,但服務器可以提供自定義提示。有關更多詳細信息,請參閱this answer

+0

我打算在serverfault上發佈它,而不是stackoverflow。哎呀。 (我不知道我是否可以移動它)謝謝你的答案! – CoolAJ86

相關問題