Впровадження двофакторної автентифікації (2FA) за допомогою SSH на сервері Debian 11
11:19, 28.07.2026
Щоб підвищити рівень безпеки вашого сервера Debian 11, настійно рекомендується використовувати двофакторну автентифікацію. Якщо ви бажаєте налаштувати 2FA, у цьому посібнику ви знайдете детальну інформацію про процес налаштування.
Що таке двофакторна автентифікація
Для входу на сервер Debian користувачі зазвичай просто вводять пароль або SSH-ключ. Двофакторна автентифікація робить вхід у систему безпечнішим, оскільки для доступу до системи потрібні дві різні частини інформації. Окрім стандартного пароля, користувачам потрібно ввести одноразовий пароль для входу на сервер Debian. Цей тимчасовий пароль генерується за алгоритмом TOTP. Сьогодні багато платформ використовують двофакторну автентифікацію з міркувань безпеки, і це чудова ідея, яка може суттєво захистити ваш сервер від несанкціонованих спроб входу.
У цьому посібнику ми поділимося практичними рекомендаціями щодо налаштування 2FA, щоб ви чітко розуміли принципи аутентифікації за відкритим ключем та за паролем. Програмне забезпечення, яке буде використовуватися для 2FA, є відкритим і називається libpam authenticator.
Крок 1: Налаштування Google Authenticator на сервері Debian
Щоб встановити аутентифікатор із стандартного репозиторію, скористайтеся такою командою:
sudo apt install -y libpam-google-authenticator
Для створення ключа скористайтеся такою командою:
google-authenticator
Після цього вам буде запропоновано вказати, чи повинні токени автентифікації бути обмеженими за часом, і тут слід вказати «Y». Після цього ви отримаєте QR-код, який потрібно відсканувати за допомогою додатка TOTP на вашому телефоні. Ось 2 продукти, якими варто скористатися:
- Мобільний додаток Google Authenticator, що не є відкритим програмним забезпеченням. Якщо ви не хочете користуватися продуктами Google, можете скористатися продуктами Red Hat і спробувати FreeOTP.
- Google Authenticator можна легко встановити на ваш пристрій через Apple 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
У цьому файлі вам потрібно знайти 2 параметри та встановити для них значення «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
Підсумок
Сподіваємося, ця інформація була корисною, і тепер ви чітко розумієте, як працюють усі процеси та як правильно все налаштувати. На випадок, якщо виникнуть якісь проблеми, ми також розглянули кілька рекомендацій щодо усунення труднощів з автентифікацією.