我们假设我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的重复,因为给出的用例可以为不同的问题提供答案。
答案 0 :(得分:2)
你可以运行:
ssh -v -o Batchmode=yes nosuchuser@theHost
然后在详细输出中查找这一行:
debug1: Authentications that can continue: publickey,keyboard-interactive
这列出了服务器准备接受的身份验证方法。值"密码"表示用户可以通过提供密码进行身份验证。 "键盘交互"类似,但服务器可以提供自定义提示。有关详细信息,请参阅this answer。