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

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

Бинго, двухфакторная аутентификация.

Другие вопросы по тегам