SSH с парольной фразой, возврат к Google Authenticator
С появлением Google Authenticator и возможностью использовать его с ssh мне стало интересно, прошел ли кто-нибудь настройку sshd_config, которая бы
- сначала ожидайте ключ
- если это не удается, вернитесь к аутентификации с помощью Google Authenticator
Идея состоит в том, чтобы обычно легко соединяться с ключом и, как правило, в менее дружественной среде, соединяться с помощью двухфакторного механизма.
1 ответ
Да, у меня есть настройки, где я могу ssh
на мой сервер с использованием аутентификации с открытым ключом, с откатом к двухфакторной аутентификации с помощью Google Authenticator + пароль, когда мой закрытый ключ недоступен. Это шаги, которые вы можете использовать для его настройки.
Установка Google Authenticator
Мой сервер работает под управлением Ubuntu Bionic Beaver (18.04.1). Вы можете установить Google Authenticator, используя apt
:
$ sudo apt install libpam-google-authenticator
Конфигурирование sshd
открыто /etc/pam.d/sshd
и добавьте следующую строку вверху:
auth optional pam_google_authenticator.so
открыто /etc/ssh/sshd_config
и изменить одну строку. Существующая линия
ChallengeResponseAuthentication no
и вы должны изменить его на
ChallengeResponseAuthentication yes
Настройка Google Authenticator для вашей учетной записи
Следующим шагом является включение Google Authenticator для вашей учетной записи. Вы делаете это, просто запустив:
$ google-authenticator
Убедитесь, что вы запускаете это как пользователь, который будет устанавливать ssh-соединения, а не как root. Запишите ваш новый секретный ключ и аварийные коды. Мастер задаст вам несколько вопросов для настройки параметров безопасности вашей учетной записи.
Настройка вашего мобильного приложения
Я использую приложение Google Authenticator для iPhone. Это приложение имеет кнопку [+], которая позволяет мне добавить новый токен на основе времени, используя секретный ключ, полученный из google-authenticator
Команда на моем сервере. Это было тривиально настроить. Я не могу помочь вам с приложениями на любой другой платформе, но я думаю, что процесс такой же простой.
Вытягивание спускового крючка
Последнее, что вам нужно сделать, это перезагрузить sshd
,
$ sudo /etc/init.d/ssh restart
На этом этапе, когда вы пытаетесь подключиться к серверу, когда ваш закрытый ключ доступен, аутентификация просто работает. Когда ваш закрытый ключ недоступен, вы получите запрос на ввод кода подтверждения, затем пароль вашей учетной записи.