Що потрібно зробити?#
На VPS потрібно увімкнути двофакторну аутентифікацію для SSH. 2FA буду додавати через Google Authenticator.
З чим працюю?#
| |
Конфігурація#
Крок 1 - Встановлюємо пакет#
Встановлюємо libpam-google-authenticator
| |
Крок 2 - Реєструємося#
Запускаємо google-authenticator
| |
Відповідаємо на питання:
| |
Після цього з’явивиться qr який потрібно відсканувати через додаток Google Authenticator.

| |
У відповідь отримаємо emergency scratch codes - запиши їх кудись.
| |
І відповідаємо на решту запитань:
| |

Крок 3 - Налаштовуємо PAM (вмикаємо 2FA)#
| |
Додаємо наступні рядки (він повинен бути з самого верху)
| |

Якщо потрібно увімкнути не для ВСІХ - в самому кінці дописуємо nullok.
У користувачів у яких немає файла ~/.google_authenticator не буде вимагати OTP.
| |
Якщо залишити @include common-auth - після OTP буде питати пароль.
Ось фінальний варіант:
- 2fa не обов’язковий - доданий nullok
- Пароль не вимагатиме - @include common-auth - закоментований
- Аутентифікація по ключу, а якщо є 2fa то {ключ + 2fa}

Крок 4 - Налаштовуємо sshd#
Змінюємо рядки (можна змінити в /etc/ssh/sshd_config) або додати окремо , наприклад /etc/ssh/sshd_config.d/google-auth.conf
| |
Після цього
| |
якщо через sudo
| |
Можливі проблеми#
Вимкнути 2fa для користувача#
Якщо потрібно вимкнути 2fa для якогось юзера -> видали або зміни назву файлу (при умові що доданий nullok в pam.d/sshd)
| |
Увімкнути 2fa для ROOT#
Якщо хочеш 2fa для root то отримаєш ось таку помилку
| |
Додай PermitRootLogin yes в /etc/ssh/sshd_config.d/google-auth.conf
| |
p.s. це знижує безпеку і краще використовувати sudo-юзера.



