Реализация двухфакторной аутентификации (2FA) с помощью SSH на сервере Debian 11

watch 1m, 1s
views 2

11:24, 28.07.2026

Содержание статьи
arrow

  • Что такое двухфакторная аутентификация
  • Шаг 1: Настройка Google Authenticator на сервере Debian
  • Шаг 2: Включение Google Authenticator для доступа по SSH
  • Использование аутентификации по паролю с 2FA
  • Объединение аутентификации по открытому ключу с двухфакторной аутентификацией (2FA)
  • Важные моменты
  • Отключение двухфакторной аутентификации SSH
  • Заключительное резюме

Для повышения уровня безопасности вашего сервера Debian 11 настоятельно рекомендуется использовать двухфакторную аутентификацию. Если вы хотите настроить двухфакторную аутентификацию (2FA), то в этом руководстве вы найдёте подробную информацию о процессе настройки.

Что такое двухфакторная аутентификация

Для входа на сервер Debian пользователи обычно просто вводят пароль или SSH-ключ. Двухфакторная аутентификация делает вход в систему более безопасным, поскольку для доступа к системе требуются два разных элемента информации. Наряду со стандартным паролем пользователям необходимо ввести одноразовый пароль для входа на сервер Debian. Этот временный пароль генерируется с помощью алгоритма TOTP. В настоящее время многие платформы используют двухфакторную аутентификацию из соображений безопасности, и это отличная идея, которая может значительно защитить ваш сервер от несанкционированных попыток входа.

В этом руководстве мы поделимся практическими рекомендациями по настройке двухфакторной аутентификации, чтобы вы получили чёткое представление об аутентификации с помощью открытого ключа и пароля. Программное обеспечение, которое будет использоваться для двухфакторной аутентификации, является открытым и называется libpam authenticator.

Шаг 1: Настройка Google Authenticator на сервере Debian

Чтобы установить аутентификатор из репозитория по умолчанию, воспользуйтесь следующей командой:

sudo apt install -y libpam-google-authenticator

Для создания ключа используйте следующую команду:

google-authenticator

После этого вам будет предложено указать, должны ли токены аутентификации быть ограничены по времени, и здесь следует ввести Y. Затем вы получите QR-код, который необходимо отсканировать с помощью приложения TOTP на вашем телефоне. Вот два продукта, которые стоит использовать:

-       Мобильное приложение Google Authenticator, не являющееся открытым исходным кодом. Если вы не хотите использовать продукты Google, можете воспользоваться продуктами Red Hat и попробовать FreeOTP.

-       Google Authenticator можно легко установить на ваше устройство через App Store или Google Play.

Не забудьте увеличить окно, чтобы отсканировать полный QR-код с выбранным способом аутентификации на вашем устройстве. После завершения этого процесса вы получите 6-значный пароль на мобильном устройстве, и в соответствии с настройками по умолчанию этот пароль будет меняться каждые 30 секунд. Введите его для подтверждения доступа.

В окне терминала вы увидите информацию о проверочном коде, секретном ключе и коде скретч-карты. Настоятельно рекомендуется сохранить эти данные в надёжном месте на будущее.

Затем под этой информацией будет перечислено несколько вопросов, на которые вам следует ответить «Y» (Да). Таким образом вы увеличиваете временное окно, обновляете конфигурационный файл Authenticator, включаете ограничения на частоту запросов для лучшей защиты и отключаете поддержку нескольких пользователей.  

Шаг 2: Включение Google Authenticator для доступа по SSH

Использование аутентификации по паролю с 2FA

Для тех, кто планирует использовать аутентификацию по паролю с 2FA. Вот краткая инструкция по всему процессу: начните с открытия файла конфигурации с помощью команды:

sudo nano /etc/ssh/sshd_config

В файле найдите такие параметры, как ChallengeResponseAut. и UseRAM, и установите для обоих значение «yes».

PAM — это специальный модуль аутентификации, позволяющий легко интегрировать различные методы аутентификации в вашу систему Debian. Для правильной работы аутентификации по SSH оба этих параметра должны быть включены.

Ещё один важный параметр, который следует установить в значение «Yes», — это PermitRootLogin. Чтобы обеспечить двухфакторную аутентификацию, его значение не должно быть «prohibited-PW» или «no», поэтому проверьте, всё ли указано правильно в файле конфигурации.

После сохранения файла со всеми внесёнными изменениями необходимо выполнить следующие важные шаги:

sudo nano /etc/pam.d/sshd

Открыв файл, найдите строку с ChallengeResponseAuth и также измените её значение на «Yes». Этот параметр обеспечивает правильный процесс аутентификации по паролю.

@include common-auth

Кроме того, не забудьте добавить следующую информацию:

auth   required   pam_google_authenticator.so

Сохраните файл с внесенными изменениями и перезапустите SSH с помощью следующей команды:

sudo systemctl restart ssh

После выполнения всех вышеуказанных инструкций при входе в систему вам будет предложено ввести проверочный код, а также ваш пароль. Код подтверждения — это одноразовый код, который вы получите на своё мобильное устройство. Еще одна рекомендация, о которой стоит помнить — не закрывайте текущую сессию. Для тестирования процесса вам следует открыть другое окно, и в случае возникновения каких-либо проблем исходная сессия SSH будет иметь решающее значение для устранения этой проблемы.  

Объединение аутентификации по открытому ключу с двухфакторной аутентификацией (2FA)

Чтобы объединить аутентификацию по открытому ключу с двухфакторной аутентификацией (2FA), следуйте приведенной ниже пошаговой инструкции. Начните с открытия файла конфигурации:

sudo nano /etc/ssh/sshd_config

В файле вам нужно найти два параметра и установить для них значение «Yes». Найдите параметры ChallengeResponseAuthen. и UsePAM и, как только найдете, измените их значение на необходимое.

PAM — это специальный модуль аутентификации, необходимый для простого подключения различных методов аутентификации в системе Debian. Для включения Google Authenticator оба этих параметра должны быть активированы.

Если вам также требуется, чтобы пользователь root имел доступ к двухфакторной аутентификации, найдите дополнительный параметр под названием PermitRootLogin. Найдя его, вам также следует изменить его значение на Y (Yes); любое другое значение в данном случае не подходит.

После выполнения всех вышеупомянутых шагов необходимо также добавить в файл ещё одну строку:

AuthenticationMethods publickey,keyboard-interactive

Закройте файл, сохранив все внесенные изменения. Следующим шагом будет редактирование правил PAM:

sudo nano /etc/pam.d/sshd

В файле вам нужно найти следующий параметр — ChallengeResponseAuthen со значением «Yes». Следующим шагом будет закомментирование этой части, так как вы будете использовать SSH-ключ.

@include common-auth

Для включения этого процесса крайне важна следующая строка:

auth   required   pam_google_authenticator.so

После внесения всех изменений сохраните файл и перезапустите систему с помощью команды:

sudo systemctl restart ssh

Теперь, когда на вашем сервере Debian всё настроено должным образом, вы можете использовать безопасный вход в систему, при котором вам потребуется ввести как проверочный код, так и SSH-ключ. Ещё одно напоминание: не закрывайте текущую сессию. Откройте ещё одно окно терминала и проверьте, всё ли работает как положено; в случае возникновения каких-либо проблем вы сможете воспользоваться этой исходной сессией.

Важные моменты

-        Пользователям серверов Debian обязательно следует отсканировать QR-код и выполнить команды аутентификатора, чтобы всё настроить правильно. В противном случае возникнут проблемы с отказом в доступе.

-        Не забудьте сохранить свой одноразовый код. В экстренной ситуации, когда вы по какой-либо причине не можете получить доступ к своему мобильному устройству, вы можете использовать один из 5 доступных одноразовых кодов, чтобы завершить процесс верификации. Каждый код можно использовать только один раз, так что имейте это в виду.

-        Чтобы изменить секретный ключ, вам нужно всего лишь запустить google-authenticator команду и обновить этот файл.

-        Для бесперебойного процесса аутентификации вам также следует настроить часовые пояса. Одноразовый пароль генерируется с учётом текущего времени, поэтому рекомендуется включить синхронизацию между сервером Debian и вашим мобильным устройством.

Отключение двухфакторной аутентификации SSH

Чтобы начать процесс отключения, необходимо использовать:

sudo nano /etc/pam.d/sshd

Следующим шагом является закомментирование строки:

auth   required   pam_google_authenticator.so

Если вы добавили строку с AuthenticationMethods, то вам следует удалить keyboard-interactive часть. Затем вместо этого добавьте publickey и сохраните изменения. Последним шагом будет перезапуск системы с помощью:

sudo systemctl restart ssh

Заключительное резюме

Надеемся, что эта информация оказалась полезной и теперь у вас есть чёткое представление о том, как функционируют все процессы и как всё правильно настроить. На случай возникновения каких-либо проблем мы также рассмотрели несколько рекомендаций по устранению неполадок с аутентификацией.

Поделиться

Была ли эта статья полезной для вас?

Популярные предложения VPS

-7.1%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB HDD
Bandwidth
Bandwidth
Unlimited
wKVM-HDD 4096 Windows

21

При оплате за год

-15.4%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
60 Mbps
DDoS Protected SSD-wKVM 4096 Windows

73

При оплате за год

-10%

CPU
CPU
8 Xeon Cores
RAM
RAM
32 GB
Space
Space
200 GB SSD
Bandwidth
Bandwidth
12 TB
KVM-SSD 32768 Metered Linux

150

При оплате за год

-5.6%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
60 GB HDD
Bandwidth
Bandwidth
Unlimited
wKVM-HDD 2048 Windows

13.7

При оплате за год

-26.7%

CPU
CPU
3 Xeon Cores
RAM
RAM
1 GB
Space
Space
20 GB SSD
Bandwidth
Bandwidth
1 TB
KVM-SSD 1024 Metered Linux

10

При оплате за год

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
Unlimited
wKVM-SSD 4096 Windows

18.65

При оплате за год

-16.2%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
50 GB SSD
Bandwidth
Bandwidth
60 Mbps
DDoS Protected SSD-KVM 4096 Linux

67

При оплате за год

-21%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
8 TB
wKVM-SSD 8192 Metered Windows

65

При оплате за год

-5.3%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
60 GB HDD
Bandwidth
Bandwidth
300 Gb
wKVM-HDD HK 2048 Windows

11.9

При оплате за год

-10%

CPU
CPU
3 Xeon Cores
RAM
RAM
1 GB
Space
Space
20 GB SSD
Bandwidth
Bandwidth
Unlimited
KVM-SSD 1024 Linux

6.6

При оплате за год

Другие статьи на эту тему

cookie

Принять файлы cookie и политику конфиденциальности?

Мы используем файлы cookie, чтобы обеспечить вам наилучший опыт работы на нашем сайте. Если вы продолжите работу без изменения настроек, мы будем считать, что вы согласны получать все файлы cookie на сайте HostZealot.