Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

SSH с двухфакторной аутентификацией через Google Authenticator в Ubuntu

Linux и DevOps

SSH — один из самых распространённых способов удалённого доступа к серверу. Чтобы усилить безопасность, можно добавить двухфакторную аутентификацию (2FA) через Google Authenticator с использованием PAM. Эта инструкция показывает, как правильно это сделать в Ubuntu.

Что потребуется

  • Ubuntu Server или Desktop (современная версия)
  • Доступ по SSH или к терминалу
  • root-доступ (или sudo)
  • Приложение Google Authenticator / Aegis / OTP Auth на телефоне

Установка PAM-модуля

Подключитесь к серверу по SSH или через терминал и выполните:

sudo apt update
sudo apt install libpam-google-authenticator

Настройка пользователя

Выполните команду от имени пользователя, для которого будет активирован 2FA:

google-authenticator

Ответьте на вопросы:

  • Time-based tokens? → y
  • Update your .google_authenticator file? → y
  • Disallow multiple uses? → y
  • Enable rate limiting? → y

Отсканируйте QR-код через приложение 2FA или введите секретный ключ вручную.

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

Настройка PAM

Откройте PAM-конфигурацию SSH:

sudo nano /etc/pam.d/sshd

Добавьте в начало файла:

auth required pam_google_authenticator.so

Настройка sshd_config

Откройте конфигурацию SSH:

sudo nano /etc/ssh/sshd_config

Убедитесь, что заданы следующие параметры:

Port 22
UsePAM yes
KbdInteractiveAuthentication yes
AuthenticationMethods keyboard-interactive
PasswordAuthentication no
ChallengeResponseAuthentication yes

Если указан password,keyboard-interactive и PasswordAuthentication отключён, вход невозможен.

Проверка и перезапуск

Проверьте корректность конфигурации:

sudo /usr/sbin/sshd -t

Если ошибок нет — перезапустите SSH-сервис:

sudo systemctl restart ssh

Проверка подключения

Подключитесь по SSH:

ssh username@your.server.ip

Появится запрос:

Verification code:

Введите код из приложения Google Authenticator.

Возможные ошибки

1. Permission denied, даже при верном коде

Проверьте параметры в sshd_config:

  • AuthenticationMethods keyboard-interactive
  • KbdInteractiveAuthentication yes
  • UsePAM yes
  • PasswordAuthentication no

2. QR-код не отображается

Используйте терминалы с графикой (wezterm, iTerm2, kitty) или введите ключ вручную.

3. sshd не запускается

Проверьте статус:

sudo systemctl status ssh

Посмотрите журнал:

sudo journalctl -xeu ssh

И проверьте конфиг:

sudo /usr/sbin/sshd -t

Финальная конфигурация

/etc/ssh/sshd_config

Port 22
UsePAM yes
KbdInteractiveAuthentication yes
AuthenticationMethods keyboard-interactive
PasswordAuthentication no
ChallengeResponseAuthentication yes

/etc/pam.d/sshd

auth required pam_google_authenticator.so
@include common-auth
@include common-account
@include common-session
@include common-password

Заключение

С двухфакторной аутентификацией SSH становится значительно безопаснее. Настройка занимает несколько минут, но существенно снижает риск несанкционированного доступа. Важно правильно настроить PAM и параметры SSH для корректной работы 2FA.

Оцените статью
ctrllife.ru
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x