Как мне требовать MFA только тогда, когда он был настроен?
Я бы хотел, чтобы каждый пользователь использовал MFA с Google Authenticator. Каждый раз, когда я добавляю нового пользователя, я хочу разрешить ему входить в систему, используя свой SSH-ключ, только один раз, и при входе в систему требуется, чтобы он создал секретный ключ, запустив программу установки GAuth .bash_login
, Это создаст ~/.google_authenticator
в их домашнем каталоге. Я следовал этим инструкциям (Ctrl+F "Другой способ заставить создание"), чтобы настроить мой sshd_config
а также pam.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
him@xxx.xxx.xxx.xxx: Permission denied (keyboard-interactive).
Однажды .google_authenticator
файл создан, логин должен продолжаться нормально. Как мне разрешить такой вид входа .google_authenticator
нету?
Кстати, это Ubuntu 18.04 LTS.
0 ответов
Я заметил, что обновление README проекта добавляет информацию о 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.