Вы здесь

Двухфакторная аутентификация при работе через SSH

Доступ к консоли серверов по SSH обычно выполняется по паролю. Другие способы аутентификации используются не часто, тем более в небольших компаниях. При этом в качестве пароля обычно используют какие-то запоминающиеся фразы, что конечно не безопасно. И мы не собираемся читать лекцию о "правильных" паролях и о том как это важно. Сегодня мы поговорим о двухфакторной, или правильнее говорить, двухэтапной аутентификации с помощью Google Authenticator и покажем как настроить доступ к серверу по SSH используя pam-модуль "google-authenticator" .

Суть механизма заключается в следующем. В момент авторизации в дополнение к имеющемуся паролю система запрашивает числовой код, который создается имеющимся в наличии смартфоном и меняется каждые 30 секунд. Сам сервер точно таким же образом генерирует свой код. Таким образом достаточно открыть приложение Google Authenticator на устройстве, посмотреть код и ввести его в консоль сервера. Если введенный код совпадает с тем, что сгенерировал сервер, то мы попадаем в систему.

Итак приступим. В качестве системы у нас будет использоваться свежая Ubuntu Xenial 16.04. Для начала проверим обновления:

apt-get update
apt-get upgrade

А пока выполняется обновление идем в App Store или Google Play, смотря какое устройство используется, и устанавливаем приложение Google Authenticator.

Обновление завершено и на следующем этапе установим модуль pam:

apt-get install libpam-google-authenticator

И видим веселую картинку в виде 3D штрих-кода:

Открываем установленное ранее на смартфоне приложение и с помощью него сканируем этот штрих-код.