在每个用户下次 SSH 登录时强制执行 2FA 配置

在每个用户下次 SSH 登录时强制执行 2FA 配置

我已经找到了很多关于如何启用 2FA(TOTP、RFC 6238)的教程,但是有没有办法强制 SSH 用户在第一次登录时进行配置?(我正在使用 OpenSSH 服务器)

我想我可以创建一个每次运行的脚本并检查.google_authenticator特定用户是否存在,如果不存在则运行google-authenticator直到存在然后进行编辑/etc/pam.d/sshd(哎呀),否则运行默认的 shell/命令...但可能存在许多不可预见的边缘情况和破坏 SSH 登录的可能性。

因此,在我可能重新发明轮子并随意这样做之前,是否已经存在解决方案?

我认为它确实如此,因为这是面向用户的软件的常态,例如 Gitlab 和 Gsuite,你可以强制用户在下次登录时配置 2FA。

答案1

我不确定是否有人已经编写了通用脚本,因为这些内容有时特定于要求。

我建议使用 env 文件(.bashrc、.bash_profile 等)来更改你的 ssh/2FA 等文件。

脚本结构如下:

if <check 2fa file setup exists>
    # execute this if found
    # or continue
else
    # setup 2FA and exit for next login.

相关内容