2017-04-18 34 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

相关问题