Поиск по сайту:

Как защитить 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-сервер с двухфакторной аутентификацией!