SSH身份验证顺序


22

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

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

我想更改顺序...任何想法如何?

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


1
我认为您使用的方法不正确-密钥(通常)比密码更安全。如果该帐户已锁定,则需要告诉sshd守护程序,无论身份验证方法如何,都不要让用户登录。
SevenBitTony11年

就像我说的,我通过DenyGroups找到了解决方案。我是出于兴趣而要求它。
2011年

Answers:


31

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服务器偏爱某个命令-如果您考虑一下,这反而是没有道理的。


如果您使用Windows的Git Bash,请将ssh配置保存到~/.ssh/config
Spencer Williams

如果一种方法依赖于前一种方法,则顺序可以说得通。例如,键盘交互下的2FA可能取决于用户首先提供了有效密码。
steveayre 18/09/25

您可以张贴复制粘贴上述PreferredAuthentications信息的来源吗?我没有看到它man ssh,也不在/etc/ssh/ssh_config,也不在/etc/ssh/sshd_config。您从哪里获得此信息?
加布里埃尔·斯台普斯

找到了!是在man ssh_config。我提交了修改以供审核,以更新您的答案以包含此源。请下次引用来源!非常感谢。
加布里埃尔·斯台普斯

18

添加:

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

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

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


2
确保将其添加到正确的文件中,ssh_config而不是添加到正确的文件中sshd_config。后者将导致您的ssh失败!
Oranges13 2013年

0

除了已经提到了该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在线此处)。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.