我正在尝试为我的 SSH 服务器获取双因素身份验证的条件组合(OpenSSH_6.7p1)但读了又读,我还是找不到如何设置我的想法。我刚刚发现了这个邮政和我的情况一样(解释得也更好)但还没有解决。
我已按照所述步骤使用 Google Authenticator TOTP 设置了 2FA 方法这里。
尝试登录时我想要实现的目标:
如果提供了有效密钥,则请求 TOTP。
如果没有提供密钥,则请求账户密码,然后请求 TOTP。
我成功配置了其他选项,例如:
- 公钥 + 密码 + TOTP Google Authenticator (1)
- 公钥 + TOTP (2)
- 密码 + TOTP (3)
这意味着,我将其ChallengeResponseAuthentication
改为。我已经注释掉了案例 2 中的行。我也尝试了文件中指令的不同选项(案例1,2)。 阅读 SSH 手册后,我猜问题出在:yes
sshd_config
@include common-auth
pam.d/sshd
AuthenticationMethods
sshd_config
pam.d/sshd
UsePAM 启用可插入身份验证模块接口。如果设置为“yes”,则除了对所有身份验证类型进行 PAM 帐户和会话模块处理外,还将启用使用 ChallengeResponseAuthentication 和 PasswordAuthentication 的 PAM 身份验证。
由于 PAM 质询-响应身份验证通常与密码身份验证起着同等作用,因此您应该禁用 PasswordAuthentication 或 ChallengeResponseAuthentication。
如果有人能给我一些建议,告诉我如何继续(如果可以实现的话),我将不胜感激。谢谢。