安全审计:如何检查ssh服务器是否要求输入密码

时间:2017-04-18 20:48:37

标签: security ssh

我们假设我grep /etc/ssh/sshd_config '^PasswordAuthentication no$'并获得了有利的结果。

如何检查正在运行的服务器实际上是否正在使用该配置(即自更改后它已重新启动)?

我正在寻找一种经验方法,通过以脚本方式使用ssh客户端,明确“是,这个ssh服务器将接受密码”或明确的“不,密码不允许在此服务器上”。 / p>

显然我可以手动运行ssh $USER@$HOST -i /path/to/badkey并等待,看看我是否收到了密码提示,但这不是可编写脚本的(即使它是,它也会一直以错误状态退出)。

这不是check is SSH prompt for password or not的重复,因为给出的用例可以为不同的问题提供答案。

1 个答案:

答案 0 :(得分:2)

你可以运行:

 ssh -v -o Batchmode=yes  nosuchuser@theHost

然后在详细输出中查找这一行:

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

这列出了服务器准备接受的身份验证方法。值"密码"表示用户可以通过提供密码进行身份验证。 "键盘交互"类似,但服务器可以提供自定义提示。有关详细信息,请参阅this answer