在 Debian 10 上启用 2FA,但仅适用于密码(没有 2FA 的 pubkey)

在 Debian 10 上启用 2FA,但仅适用于密码(没有 2FA 的 pubkey)

99% 的时间我都使用 pubkey 身份验证从我自己的一台机器上管理我的私人服务器。但是,我启用了密码身份验证(针对我的用户,而不是 root),以应对极少数情况下我需要从另一台计算机访问它的情况,这种情况已经发生了。

为了提高系统的安全性,我想启用 2FA,但仅限密码登录。我非常欣赏使用 pubkey 身份验证在没有任何提示的情况下登录的便利性,并且宁愿不使用 2FA,也不愿每次都使用它(我从事机密项目,并且在一个典型的工作日中我已经执行了十几个或更多的 2FA 身份验证) )。

我找到的所有设置 2FA 的指南都假设您希望在所有身份验证方法中启用 2FA。

我是否可以 - 如果可以,如何 - 仅为密码身份验证启用 2FA,而不为 pubkey 启用 2FA?

如果这不起作用,我的解决方法是禁用常规用户的密码身份验证,并设置启用了 2FA 的维护用户。但我更喜欢更干净的设置。

答案1

这是猜测,因此肯定需要进行一些调整,但您描述的行为绝对是可能的。

您可以使用以下内容设置 PAM 身份验证配置:

auth       sufficient    pam_ssh_user_auth.so
auth       required      password-auth
auth       required      pam_2fa.so

该配置文件是按顺序读取的。第一行表示,“如果 ssh 身份验证有效,就足够了。”退出成功。假设您启用了 ssh 公钥身份验证,这将导致成功的身份验证退出。接下来的两行仅在我们尚未使用公钥时运行。我们只需包含适当的密码身份验证和 2fa 身份验证。

相关内容