参考:

参考:

当我通过 ssh 登录时,-v我看到 ssh 正在以以下方式进行身份验证

debug1: Authentications that can continue: publickey,gssapi-with-mic,password,hostbased

我想改变顺序...有什么想法吗?

我最大的问题是,帐户被锁定的用户仍然可以通过公钥登录。我发现我可以将用户添加到“ssh-locked”组,并拒绝该组使用 ssh,但我仍然想知道是否有办法告诉 ssh'd: 请在输入密钥前检查密码...

答案1

ssh 服务器决定允许哪些身份验证选项,可以配置 ssh 客户端以决定以何种顺序尝试这些选项。

ssh 客户端使用PreferredAuthenticationsssh 配置文件中的选项来确定这一点。

man ssh_config点击这里在线查看):

PreferredAuthentications
             Specifies the order in which the client should try protocol 2 authentication methods.  This allows a client to prefer
             one method (e.g. keyboard-interactive) over another method (e.g. password).  The default is:

                   gssapi-with-mic,hostbased,publickey,
                   keyboard-interactive,password

我认为,如果不使用源代码,就不可能告诉 OpenSSH 服务器选择特定的顺序 —— 如果你仔细想想,就会发现这无论如何都没有什么意义。

答案2

添加这个:

PreferredAuthentications keyboard-interactive,password,publickey,hostbased,gssapi-with-mic

.../etc/ssh/ssh_config帮助我解决了这个问题,并且还节省了很多时间!

您可以使用ssh -v user@host命令连接来检查它是否有效,其中-v代表“详细”。

答案3

除了已经提到该选项的其他两个答案之外PreferredAuthentications,我想补充一下如果你不想,则无需编辑任何文件来设置此设置.相反,你可以在命令行上设置它以进行单独调用ssh,选项-o如下:

ssh -o PreferredAuthentications=publickey,gssapi-with-mic,hostbased,keyboard-interactive,password user@hostname

参考:

  1. 要了解有关该PreferredAuthentications选项的更多信息,请参阅man ssh_config点击这里在线查看)。另请参阅手册页ssh -o中的选项man ssh在线)。

答案4

对于真正锁定的帐户,您通常也可以使用其到期日期。具体方法取决于主机的操作系统,例如在 Linux 上是chage -d 0 someuser

也可以看看https://unix.stackexchange.com/questions/343535/what-is-the-solaris-equivalent-of-chage-d:-)

相关内容