Я хочу настроить 2FA на SSH на моем Сервере LTS Ubuntu 18.04. Я не хочу использовать Google Authenticator, но Решение с открытым исходным кодом.
Есть ли какие-либо руководства для того, чтобы просто использовать что-то свободное и кроме Google Authenticator?
Заранее спасибо.
С уважением,
Те руководства должны работать с другим 2FA приложения (такие как FreeOTP) также.
Аутентификатор Google использует TOTP и большинство 2FA, приложения, такие как FreeOTP с открытым исходным кодом используют тот же стандарт, и можно использовать их вместо Google Authenticator.
Для полноты вот (измененное) руководство от DigitalOcean для установки FreeOTP. Обратите внимание, что логины с открытым ключом SSH не попросят 2FA маркер, если Вы захотите использовать аутентификацию с открытым ключом с 2FA, см. руководство DigitalOcean (и отключите основанную на пароле аутентификацию).
Обновите репозитории и установку Ubuntu libpam-google-authenticator
(это работает с другим 2FA приложения также).
sudo apt update && sudo apt install libpam-google-authenticator
Настройте ключ TOTP для своего пользователя:
google-authenticator
Ответьте на да на Do you want authentication tokens to be time-based
и Do you want me to update your "~/.google_authenticator" file
вопросы.
Просканируйте (большой) QR-код (большинство эмуляторов терминала GUI позволяет Вам использовать Ctrl + - для уменьшения масштаб и Ctrl + 0 для сброса масштабирования) с FreeOTP или 2FA приложение по Вашему выбору.
Запишите резервные коды где-нибудь и сохраните их надежно.
Настроить openssh-server
позволить 2FA логины. Можно удалить nullok
если Вы не хотите позволять пользователям без 2FA, настраивают для входа в систему.
[ -e /etc/pam.d/sshd ] || echo '@include common-auth' | sudo tee /etc/pam.d/sshd
echo auth 'required pam_google_authenticator.so nullok' | sudo tee -a /etc/pam.d/sshd
sudo nano /etc/ssh/sshd_config
Найдите ChallengeResponseAuthentication
строка и изменение это к ChallengeResponseAuthentication yes
, затем нажмите, Ctrl + O затем Входят, чтобы сохранить файл и Ctrl + X для закрытия nano
.
Перезапуск sshd
применять изменения.
sudo systemctl restart sshd
Откройте другой терминал (таким образом, у Вас все еще есть доступ, если он не работал), и попытайтесь войти в систему.