
У меня Ubuntu 20.04.3 LTS, в которой я успешно установил Google Authenticator для MFA-аутентификации. Теперь мне нужна помощь по этапам аутентификации. Моя цель такова:
Если у пользователя нет ssh-ключа, то при SSH-подключении пользователь должен сначала ввести свой пароль, а затем ввести ключ проверки Google, чтобы получить доступ к системе.
Если у пользователя есть 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