如何使用公钥+令牌或密码+令牌设置 SSH 2FA?

如何使用公钥+令牌或密码+令牌设置 SSH 2FA?

我尝试为 Ubuntu 18.04 服务器的 SSH 设置 PAM 身份验证(通过修改中的说明)本指南)。我正在尝试设置登录名,以便这两个组合中的任何一个都足以登录服务器:

1) 公钥 + 令牌 2) 密码 + 令牌

但是,无论我尝试使用哪种设置,它都不起作用。我正在编辑以下两个文件:

/etc/ssh/sshd_config
/etc/pam.d/sshd

据我了解,我需要以下两行/etc/ssh/sshd_config

UsePAM yes
AuthenticationMethods password,keyboard-interactive publickey,keyboard-interactive

然后注释掉以下行/etc/pam.d/sshd

#@include common-auth

但如果我像这样设置它,它会导致一个有趣的状态:

1)如果我尝试使用公钥+令牌登录,一切正常:

Authenticated with partial success.
Verification code:

我输入我的 2FA 令牌并进入。

2)但是,如果我尝试密码+令牌,我首先会收到输入密码的提示

[email protected]'s password:

但正确的 SSH 密码才不是工作。对于此提示有效的是 2FA 令牌(为什么?它明确要求输入密码)。通过此提示后,我会收到提示

Verification code:

它还要求令牌。因此,我可以通过连续两次输入相同的令牌来成功登录服务器。

我究竟做错了什么?我怎样才能得到我想要的东西?我应该提供任何日志吗?我是不是想做一些不合理的事情?

谢谢!

相关内容