双方PreferredAuthentications=password
并PreferredAuthentications=keyboard-interactive
会提示输入密码,有啥它们之间的区别?
我用关键字ssh PreferredAuthentications和键盘交互的方式在Google上搜索了Google,但没有找到答案。
我注意到的唯一区别是提示字符串(user@host's password:
vs. Password:
):
$ ssh -o PreferredAuthentications=password,keyboard-interactive my-host
root@my-host's password:
Password:
Permission denied (gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive).
更新(2018-04-09):
为便于参考,以下内容摘自jouell的answer中提到的SSH:TDG书。
"keyboard-interactive"
用户身份验证主要用于适应PAM
服务器端的身份验证。它为用户提供了多个质询-响应对话框,服务器在其中向用户发送文本查询,用户键入响应,并且此过程可以重复任意多次。因此,例如,您可以PAM
为SSH 配置一个模块,该模块使用RSA安全令牌或一次性密码方案执行身份验证。人们对此感到困惑,因为默认情况下,"keyboard-interactive"
身份验证通常仅在单个质询-响应周期中实施密码身份验证,该周期仅提示输入密码,因此看起来与"password"
身份验证。如果您不是故意将两者用于不同的目的,则可能要禁用一个或另一个以避免最终用户的困惑。