我已经找到了很多关于如何启用 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.