Впровадження двофакторної автентифікації (2FA) за допомогою SSH на сервері Debian 11

watch 1m, 1s
views 2

11:19, 28.07.2026

Зміст статті
arrow

  • Що таке двофакторна автентифікація
  • Крок 1: Налаштування Google Authenticator на сервері Debian
  • Крок 2: Увімкнення Google Authenticator для доступу через SSH
  • Використання аутентифікації за паролем із 2FA
  • Поєднання аутентифікації за допомогою відкритого ключа з 2FA
  • Важливі зауваження
  • Вимкнення двофакторної аутентифікації SSH
  • Підсумок

Щоб підвищити рівень безпеки вашого сервера 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

Підсумок

Сподіваємося, ця інформація була корисною, і тепер ви чітко розумієте, як працюють усі процеси та як правильно все налаштувати. На випадок, якщо виникнуть якісь проблеми, ми також розглянули кілька рекомендацій щодо усунення труднощів з автентифікацією.

Поділитися

Чи була ця стаття корисною для вас?

Популярні пропозиції VPS

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
50 GB SSD
Bandwidth
Bandwidth
Unlimited
10Ge-KVM-SSD 4096 Linux

60.5

При оплаті за рік

-10.2%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
150 GB SSD
Bandwidth
Bandwidth
100 Mbps
DDoS Protected SSD-KVM 16384 Linux

123

При оплаті за 6 місяців

-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

26.51

При оплаті за рік

-10%

CPU
CPU
8 Epyc Cores
RAM
RAM
32 GB
Space
Space
200 GB NVMe
Bandwidth
Bandwidth
Unlimited
Keitaro KVM 32768
OS
CentOS
Software
Software
Keitaro

77.54

При оплаті за рік

-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

При оплаті за рік

-10%

CPU
CPU
8 Xeon Cores
RAM
RAM
32 GB
Space
Space
200 GB SSD
Bandwidth
Bandwidth
Unlimited
KVM-SSD 32768 Linux

69.99

При оплаті за рік

-10%

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

10.23

При оплаті за рік

-20.6%

CPU
CPU
6 Xeon Cores
RAM
RAM
8GB
Space
Space
100GB SSD
Bandwidth
Bandwidth
500GB
KVM-SSD 8192 HK Linux

59

При оплаті за рік

-5%

CPU
CPU
3 Xeon Cores
RAM
RAM
1 GB
Space
Space
40 GB HDD
Bandwidth
Bandwidth
Unlimited
wKVM-HDD 1024 Windows

12.1

При оплаті за рік

-10%

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

28.44

При оплаті за рік

Інші статті на цю тему

cookie

Чи приймаєте ви файли cookie та політику конфіденційності?

Ми використовуємо файли cookie, щоб забезпечити вам найкращий досвід роботи на нашому сайті. Якщо ви продовжуєте користуватися сайтом, не змінюючи налаштувань, вважайте, що ви згодні на отримання всіх файлів cookie на сайті HostZealot.