Двухфакторная аутентификация (2FA) требует не только знания пароля/ключа, но и наличия физического устройства (смартфона) с одноразовым кодом TOTP. Даже при утечке SSH-ключа злоумышленник не сможет войти без второго фактора.
2FA для SSH через Google Authenticator
apt install libpam-google-authenticator -y
# Настроить для каждого пользователя (запустить от пользователя!)
su - admin
google-authenticator
# Ответить Y, Y, N, Y, Y
# Отсканировать QR-код в Authy/Google Authenticator
Настройка PAM и sshd_config
# /etc/pam.d/sshd
auth required pam_google_authenticator.so
# /etc/ssh/sshd_config
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactive
# (требует ключ И одноразовый код)
systemctl reload sshd
Коды экстренного восстановления
При настройке google-authenticator сохраните резервные коды восстановления (emergency scratch codes) в надёжном месте. Без них при утере телефона вы потеряете доступ к серверу.
# Расположение файла 2FA пользователя
cat ~/.google_authenticator
# Первая строка — секретный ключ
# Строки с ** — коды восстановления (одноразовые)
2FA для WordPress
Установите плагин WP 2FA или Two Factor Authentication:
- Установить плагин из WordPress Repository
- Включить для всех администраторов в настройках плагина
- Каждый пользователь настраивает свой TOTP при следующем входе
2FA для ISPmanager 6
# ISPmanager поддерживает 2FA через TOTP
# Настройки → Профиль → Двухфакторная аутентификация
# Или через API:
# POST /api/ispmgr/totp.set с параметрами пользователя
Поддерживаемые приложения-аутентификаторы
| Приложение | Платформа | Особенности |
|---|---|---|
| Authy | iOS, Android, Desktop | Синхронизация между устройствами |
| Google Authenticator | iOS, Android | Простота, без синхронизации |
| Microsoft Authenticator | iOS, Android | Облачный бэкап |
| Bitwarden (Premium) | Все | Встроен в менеджер паролей |
| 1Password | Все | Встроен в менеджер паролей |
Рекомендация: Используйте Authy или сохраняйте TOTP-секрет в менеджере паролей (Bitwarden, 1Password). Это позволит восстановить 2FA при потере телефона без кодов восстановления.