Как защитить SSH с помощью двухфакторной аутентификации
Статус: устарело
Эта статья устарела и больше не поддерживается.
Причина
Эта статья дублирует более свежий, точный контент.
Смотрите вместо этого
Эта статья может по-прежнему быть полезной в качестве справочного материала, но может не работать или следовать рекомендациям.
Вместо этого см. Как настроить многофакторную аутентификацию для SSH в Ubuntu 16.04.
Введение
Чтобы защитить свой SSH-сервер с помощью двухфакторной аутентификации, вы можете использовать PAM-модуль Google Authenticator.
Каждый раз при подключении вы должны вводить код со своего смартфона.
Внимание: если вы активируете google-authenticator для обычного пользователя, но не для root, вы больше не сможете войти в систему напрямую с пользователем root. Сначала вам нужно будет войти в систему как новый пользователь, а затем переключиться на суперпользователя с помощью команды su, чтобы получить root.
Прежде чем что-либо делать на своем VPS, установите приложение Google Authenticator, оно доступно для Android, iOS и BlackBerry. Установите Приложение с помощью Маркета или используйте мобильный браузер, чтобы перейти на m.google.com/authenticator. После этого подключитесь к своему VPS и переключитесь на пользователя root.
Шаг первый — установка зависимостей
sudo apt-get install libpam-google-authenticator
libqrencode3 установится автоматически и позволит вам использовать камеру вашего телефона для сканирования qr-кода прямо из консоли.
Шаг второй — отредактируйте файлы конфигурации
Для использования модуля необходимо отредактировать два конфигурационных файла.
nano /etc/pam.d/sshd
Добавьте следующую строку поверх файла:
auth required pam_google_authenticator.so
Еще один файл для редактирования:
nano /etc/ssh/sshd_config
Найдите и измените следующую строку:
ChallengeResponseAuthentication yes
Шаг третий — активируйте двухфакторную аутентификацию для пользователя
Вы можете активировать google-authenticator для пользователя root или любого другого пользователя. Переключитесь на пользователя, который должен использовать двухфакторную аутентификацию, и введите:
google-authenticator
Вам будет предложено ответить на несколько вопросов; ответьте на первые два вопроса утвердительно (y):
Do you want authentication tokens to be time-based (y/n) y
Do you want me to update your "/home/USERNAME/.google_authenticator" file (y/n) y
Вы можете ответить на следующие вопросы в соответствии с вашими потребностями.
Вы можете использовать приложение Google Authenticator для сканирования qr-кода или добавить учетную запись, используя секретный ключ и код подтверждения. Не забудьте распечатать аварийные скретч-коды и хранить их в надежном месте!
Теперь вернитесь к root и перезапустите сервер SSH. Если вы добавили двухфакторную аутентификацию для пользователя root, вы можете пропустить следующий шаг.
su root
Наконец, перезапустите SSH-сервер.
/etc/init.d/ssh restart
Вот и все! Теперь у вас должен быть SSH-сервер с двухфакторной аутентификацией!