SSH с парольной фразой, откат к Google Authenticator

8

С появлением Google Authenticator и возможностью использовать его с ssh мне стало интересно, прошел ли кто-нибудь настройку sshd_config, которая бы

  • сначала ожидайте ключ
  • если это не удается, вернитесь к аутентификации с помощью Google Authenticator

Идея состоит в том, чтобы обычно легко соединяться с ключом и, как правило, в менее дружественной среде, соединяться с помощью двухфакторного механизма.

WOJ
источник

Ответы:

16

Да, у меня есть настройка, где я могу 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

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

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

Уильям Джексон
источник
Большое спасибо - это очень полно и именно то, что я искал.
WoJ
Выглядит отлично, именно то, что мне нужно. Я буду следовать твоим инструкциям и дать отзыв после этого.
peipst9lker