Хотите защитить свой SSH-сервер с помощью простой в использовании двухфакторной аутентификации? Google предоставляет необходимое программное обеспечение для интеграции системы одноразовых паролей (TOTP) Google Authenticator с вашим SSH-сервером. При подключении вам нужно будет ввести код со своего телефона.
Google Authenticator не «звонит домой» в Google - вся работа выполняется на вашем SSH-сервере и вашем телефоне. Фактически, Google Authenticator - это полностью открытый исходный код , так что вы даже можете самостоятельно изучить его исходный код.
Установите Google Authenticator
Чтобы реализовать многофакторную аутентификацию с помощью Google Authenticator, нам понадобится модуль Google Authenticator PAM с открытым исходным кодом. PAM означает «подключаемый модуль аутентификации» - это способ легко подключить различные формы аутентификации к системе Linux.
Репозитории программного обеспечения Ubuntu содержат простой в установке пакет для модуля Google Authenticator PAM. Если в вашем дистрибутиве Linux нет пакета для этого, вам придется загрузить его из Страница загрузок Google Authenticator в Google Code и скомпилируйте самостоятельно.
Чтобы установить пакет в Ubuntu, выполните следующую команду:
sudo apt-get установить libpam-google-authentication
(При этом в нашей системе будет установлен только модуль PAM - нам придется активировать его для входа по SSH вручную.)
Создать ключ аутентификации
Войдите в систему как пользователь, с которым вы будете входить удаленно, и запустите гугл-аутентификатор команда для создания секретного ключа для этого пользователя.
Разрешите команде обновить файл Google Authenticator, набрав y. Затем вам будет предложено несколько вопросов, которые позволят вам ограничить использование одного и того же временного токена безопасности, увеличить временное окно, в течение которого могут использоваться токены, и ограничить допустимые попытки доступа, чтобы препятствовать попыткам взлома методом грубой силы. Все эти варианты предлагают некоторую безопасность ради некоторой простоты использования.
Google Authenticator предоставит вам секретный ключ и несколько «аварийных скретч-кодов». Запишите аварийные скретч-коды в безопасном месте - их можно использовать только один раз, и они предназначены для использования в случае потери телефона.
Введите секретный ключ в приложении Google Authenticator на вашем телефоне (официальные приложения доступны для Android, iOS и Blackberry ). Вы также можете использовать функцию сканирования штрих-кода - перейдите по URL-адресу, расположенному в верхней части вывода команды, и вы можете сканировать QR-код с помощью камеры своего телефона.
Теперь на вашем телефоне будет постоянно меняющийся проверочный код.
Если вы хотите войти в систему удаленно как несколько пользователей, запустите эту команду для каждого пользователя. У каждого пользователя будет свой секретный ключ и свои коды.
Активировать Google Authenticator
Затем вам потребуется Google Authenticator для входа по SSH. Для этого откройте /етс/пам.д/сшд файл в вашей системе (например, с Судонано / Etc / Pam. д / шд command) и добавьте в файл следующую строку:
требуется авторизация pam_google_authenticator.so
Затем откройте / и т.д. / SSH / sshd_config файл, найдите ChallengeResponseAuthentication строку и измените ее следующим образом:
ChallengeResponseAuthentication да
(Если ChallengeResponseAuthentication строки еще не существует, добавьте строку выше в файл.)
Наконец, перезапустите SSH-сервер, чтобы изменения вступили в силу:
sudo service ssh перезапуск
Вам будет предложено ввести пароль и код Google Authenticator при каждой попытке входа через SSH.