用于密码登录的双因素身份验证,但不用于使用密钥文件登录

用于密码登录的双因素身份验证,但不用于使用密钥文件登录

我将 ssh 配置为使用位于的密钥文件~/.ssh进行登录。现在我想在使用密码时安装双因素身份验证,但在使用密钥文件时不需要。我在这里看到了如何安装双因素身份验证:DigitalOcean:如何使用双因素身份验证保护 SSH

但它适用于密钥登录和密码登录,我只想将它用于密码登录。

我想要:

  • 公钥 -> 确定进入服务器

或者

  • 密码 -> 一次性密码 -> 确定进入服务器

AuthenticationMethods也许有可能对in做些什么sshd_config?我发现了这一点:OpenSSH 使用(公钥或密码)+google authenticator

答案1

AuthenticationMethods 接受多个选择。AND 操作使用逗号,OR 操作使用空格。因此,上面链接中的示例是:

AuthenticationMethods publickey,keyboard-interactive:pam password,keyboard-interactive:pam

这表示允许密钥和质询-响应,或密码和质询-响应。这将执行您请求的操作。

我强烈建议您使用Match如下所示的块将密钥身份验证限制到已知主机https://blog.tinned-software.net/restrict-ssh-logins-using-ssh-keys-to-a-particular-ip-address/

答案2

这就是它默认的工作方式。

默认情况下,auth使用基于密钥的身份验证时,sshd 不会查询 PAM 堆栈。其他堆栈仍将触发(即account仍将强制执行您的访问策略),但需要额外的配置(自定义AuthenticationMethods)才能实现 PAM 和非 PAM 身份验证方法混合的情况。

相关内容