Реализация двухфакторной аутентификации (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

-10%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
200 GB HDD
Bandwidth
Bandwidth
Unlimited
KVM-HDD 8192 Linux

£ 21.6

£

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

-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

£ 57.32

£

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

-7.9%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
200 GB HDD
Bandwidth
Bandwidth
300 Gb
wKVM-HDD HK 8192 Windows

£ 22.72

£

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

-8.9%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
400 GB HDD
Bandwidth
Bandwidth
Unlimited
wKVM-HDD 16384 Windows

£ 47.91

£

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

-13.2%

CPU
CPU
2 Xeon Cores
RAM
RAM
512 MB
Space
Space
10 GB SSD
Bandwidth
Bandwidth
300 GB
KVM-SSD 512 HK Linux

£ 5.99

£

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

-8.8%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
400 GB HDD
Bandwidth
Bandwidth
300 Gb
wKVM-HDD HK 16384 Windows

£ 39.96

£

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

-9.9%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
75 GB SSD
Bandwidth
Bandwidth
Unlimited
wKVM-SSD 2048 Windows

£ 8.75

£

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

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
30 GB SSD
Bandwidth
Bandwidth
Unlimited
KVM-SSD 2048 Linux

£ 7.1

£

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

-9.6%

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

£ 133.46

£

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

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB HDD
Bandwidth
Bandwidth
Unlimited
KVM-HDD 4096 Linux

£ 12.83

£

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

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

cookie

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

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