Нужна помощь по аутентификатору Google на Ubuntu

Нужна помощь по аутентификатору Google на Ubuntu

У меня Ubuntu 20.04.3 LTS, в которой я успешно установил Google Authenticator для MFA-аутентификации. Теперь мне нужна помощь по этапам аутентификации. Моя цель такова:

  1. Если у пользователя нет ssh-ключа, то при SSH-подключении пользователь должен сначала ввести свой пароль, а затем ввести ключ проверки Google, чтобы получить доступ к системе.

  2. Если у пользователя есть ssh-ключ, то вводить пароль не нужно, но необходимо ввести ключ проверки Google.

Возможно ли это, если да, то какие настройки мне нужно установить /etc/ssh/sshd_configи/etc/pam.d/sshd

Вот моя текущая /etc/pam.d/sshdконфигурация

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

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

# Standard Un*x authentication.
auth required pam_google_authenticator.so nullok user=root secret=/root/totp/${USER}
auth required pam_permit.so

А вот и /etc/ssh/sshd_configфайл

ChallengeResponseAuthentication yes
UsePAM yes
PubkeyAuthentication yes
AuthorizedKeysFile     .ssh/authorized_keys
PermitRootLogin yes
PasswordAuthentication no
AuthenticationMethods publickey,keyboard-interactive

решение1

Предположим, что у вас все установлено правильно, т.е. установлено с помощью:

sudo apt-get install libpam-google-authenticator

И получил код с

google-authenticator

И в вашей домашней папке есть код

ls /home/$USER/.google_authenticator

Затем вам следует добавить следующие две строки в ваш /etc/pam.d/sshd

...

# Standard Un*x password updating.
@include common-password
auth required pam_google_authenticator.so
auth required pam_permit.so

...

Или если вы хотите, чтобы MFA была необязательной для некоторых пользователей

...

# Standard Un*x password updating.
@include common-password
auth required pam_google_authenticator.so nullok
auth required pam_permit.so

...

В файле /etc/ssh/sshd_config измените:

ChallengeResponseAuthentication yes

Затем:

sudo systemctl restart sshd.service

Во время тестирования не разрывайте SSH-соединение.начните новый, если ваша конфигурация неверна, вы можете быть заблокированы

решение2

KbdInteractiveAuthenticationтакже /etc/ssh/sshd_configочень важно,
протестировано на Ubuntu 22.04

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
#   KbdInteractiveAuthentication no
KbdInteractiveAuthentication yes

Связанный контент