Skip to content
🚀 20% OFF for new customers on Linux and Windows servers! Code: ILK20  |  Order Now →
shield Безопасность и харднинг

Как добавить Google Authenticator (2FA) к SSH-входу? Пошаговое руководство

В этом руководстве мы покажем, как повысить безопасность SSH-подключений, добавив двухфакторную аутентификацию Google Authenticator. Описаны установка, настройка и тестирование.

person
Editör
(Обновлено: 10 сен 2026) schedule 3 мин чтения visibility 9 просмотров

SSH — неотъемлемая часть управления сервером, но из-за слабых паролей или украденных ключей он может стать целью злоумышленников. Именно здесь на помощь приходит двухфакторная аутентификация (2FA). Добавить дополнительный уровень безопасности для входа по SSH с помощью Google Authenticator просто и эффективно. В этой статье я расскажу о пошаговой установке.

Предварительная подготовка и требования

Перед началом убедитесь, что у вас есть пользователь с правами root или sudo на сервере. Также установите приложение Google Authenticator на смартфон (iOS или Android — не важно). Данное руководство протестировано на Ubuntu 22.04; на других дистрибутивах названия пакетов могут отличаться.

Шаг 1: Установка необходимых пакетов

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

sudo apt update && sudo apt install libpam-google-authenticator qrencode -y

qrencode необязателен, но упрощает создание QR-кода. После завершения установки модуль PAM будет готов к работе.

Шаг 2: Настройка Google Authenticator для пользователя

Каждый пользователь должен создать свой собственный ключ 2FA. Войдите в учётную запись пользователя по SSH и выполните:

google-authenticator

Появится несколько вопросов. Первый: "Do you want authentication tokens to be time-based?" — ответьте "y" (да). Затем на экране появится большой QR-код и резервные коды. Откройте приложение Google Authenticator на телефоне и отсканируйте QR-код. Далее последуют вопросы:

  • "Do you want to update the file...?" — Да
  • "Do you want to disallow multiple uses of the same token?" — Да (рекомендуется для безопасности)
  • "Do you want to increase the window size...?" — Нет (значение по умолчанию 3 приемлемо)
  • "Do you want to enable rate limiting?" — Да (замедляет атаки перебором)

После выполнения этих шагов настройка для пользователя завершена.

Шаг 3: Изменение конфигурации SSH

Теперь нужно указать SSH-серверу использовать 2FA. Сначала отредактируем конфигурацию PAM:

sudo nano /etc/pam.d/sshd

Добавьте в начало файла следующую строку:

auth required pam_google_authenticator.so

Затем откройте файл конфигурации SSH:

sudo nano /etc/ssh/sshd_config

Здесь нужно настроить два параметра. Сначала установите ChallengeResponseAuthentication в yes:

ChallengeResponseAuthentication yes

Затем найдите строку AuthenticationMethods (если её нет, добавьте) и установите следующее значение:

AuthenticationMethods publickey,keyboard-interactive

Это обеспечит сначала проверку SSH-ключа (publickey), а затем Google Authenticator (keyboard-interactive). Если вы хотите использовать пароль и 2FA, задайте password,keyboard-interactive, но метод с ключом более безопасен.

Шаг 4: Перезапуск службы SSH

Для применения изменений перезапустите службу SSH:

sudo systemctl restart sshd

Внимание! Не закрывайте текущую SSH-сессию. Откройте новый терминал и проверьте подключение. Если возникнут проблемы, вы сможете вмешаться через старую сессию.

Шаг 5: Тестирование подключения

Попробуйте новое SSH-подключение. Например:

ssh пользователь@ip-сервера

Сначала будет запрошен SSH-ключ (или пароль). Затем вы увидите следующий вывод:

Verification code: // введите шестизначный код

Возьмите код из приложения Google Authenticator на телефоне и введите его. Если код верный, сессия откроется. При неверном коде соединение будет отклонено.

Часто встречающиеся проблемы и их решения

Ошибка "Permission denied" при подключении

Обычно это связано с неправильной конфигурацией PAM или SSH. Проверьте файл /var/log/auth.log. Также убедитесь, что строка AuthenticationMethods в sshd_config написана правильно.

Код Google Authenticator не работает

Возможно, на сервере и телефоне различается время. Проверьте службу NTP: timedatectl. Также установите на телефоне автоматическую синхронизацию времени.

Где находятся резервные коды?

Резервные коды, созданные при выполнении google-authenticator, обычно хранятся в файле ~/.google_authenticator. Запишите их в надёжное место.

Заключение

Теперь ваш вход по SSH защищён двухфакторной аутентификацией. Этот метод гарантирует, что одного украденного пароля или ключа недостаточно. Помните: чем больше уровней безопасности, тем сложнее злоумышленникам. Не забывайте регулярно обновлять систему и следить за логами.

Поделиться статьёй

Поделиться LinkedIn WhatsApp

Похожие статьи