Linux

為每個使用者在下次 SSH 登錄時強制執行 2FA 配置

  • February 14, 2022

我找到了許多關於如何啟用 2FA(TOTP,RFC 6238)的教程,但是還有一種方法可以強制 SSH 使用者在第一次登錄時對其進行配置嗎?(我正在使用 OpenSSH 伺服器)

我想我可以創建一個每次執行的腳本並檢查.google_authenticator特定使用者的 a 是否存在,如果不存在,則執行google-authenticator直到它存在然後編輯/etc/pam.d/sshd(呃-哦),否則執行預設的 shell/命令……但可能有很多不可預見的邊緣情況和破壞 SSH 登錄的可能性。

因此,在我可能重新發明輪子並且隨意地這樣做之前,現有的解決方案是否已經存在?

我會假設它確實如此,因為它是面向使用者的軟體的規範,例如 Gitlab 和 Gsuite,您可以在其中強制使用者在下次登錄時配置 2FA。

我不確定是否有人已經為通用目的編寫了腳本,因為這些東西有時是特定於需求的。

我可以建議使用 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.

引用自:https://serverfault.com/questions/1091354