如何僅在設定後才需要 MFA?

如何僅在設定後才需要 MFA?

我想要求每個使用者將 MFA 與 Google 身份驗證器結合使用。每次我新增使用者時,我希望允許他們僅使用 SSH 金鑰登入一次,並在登入時要求他們透過在其 .gauth 檔案中執行 GAuth 設定來建立金鑰.bash_login。這將~/.google_authenticator在他們的主目錄中建立。我跟著這些說明(Ctrl+F“強制創建的另一種方法”)設定 mysshd_configpam.d.這裡是它們,已刪除註釋:

/etc/ssh/sshd_config

X11Forwarding yes
PrintMotd no

AcceptEnv LANG LC_*

Subsystem   sftp    /usr/lib/openssh/sftp-server

AllowUsers me him
PermitRootLogin no
MaxStartups 15
UsePAM yes
ChallengeResponseAuthentication yes
PasswordAuthentication no
AuthenticationMethods publickey,keyboard-interactive

/etc/pam.d/sshd

# Standard Un*x authentication.
#@include common-auth

account    required     pam_nologin.so

# Standard Un*x authorization.
@include common-account

session [success=ok ignore=ignore module_unknown=ignore default=bad]        pam_selinux.so close

session    required     pam_loginuid.so

session    optional     pam_keyinit.so force revoke

@include common-session

session    optional     pam_motd.so  motd=/run/motd.dynamic
session    optional     pam_motd.so noupdate

session    optional     pam_mail.so standard noenv # [1]

session    required     pam_limits.so

session    required     pam_env.so # [1]

session    required     pam_env.so user_readenv=1 envfile=/etc/default/locale

session [success=ok ignore=ignore module_unknown=ignore default=bad]        pam_selinux.so open

# Standard Un*x password updating.
@include common-password

auth required pam_google_authenticator.so nullok

據我了解,最後一行的“nullok”意味著如果沒有設定密鑰,則不需要滿足該身份驗證要求。但是,當我嘗試使用未配置密鑰的用戶登入時,我得到類似以下內容的資訊:

$ ssh him@my_device
[email protected]: Permission denied (keyboard-interactive).

.google_authenticator建立文件後,登入應該可以正常進行。只要.google_authenticator不存在,我如何允許這種登入?

順便說一句,這是 Ubuntu 18.04 LTS。

答案1

我注意到項目自述文件的更新添加了有關該nullok選項的資訊。

PAM requires at least one `SUCCESS` answer from a module, and `nullok`
causes this module to say `IGNORE`. This means that if this option is
used at least one other module must have said `SUCCESS`. One way to do
this is to add `auth required pam_permit.so` to the end of the PAM
config.

從: https://github.com/google/google-authenticator-libpam/commit/5e804ec11104a1ab17ce02d0681130ded037f39b

相關內容