Назад | Перейти на главную страницу

Открытый ключ -или- Пароль и Google Authenticator для входа по SSH

Нашла статью (http://www.howtogeek.com/121650/how-to-secure-ssh-with-google-authenticators-two-factor-authentication/), в котором объясняется, как настроить OpenSSH для запроса кода Google Authenticator при успешном входе в систему.

Можно ли настроить OpenSSH так, чтобы происходило следующее:

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

Есть ли способ добиться того, что я хочу?

Заранее спасибо. :)

Определенно возможно настроить sshd требовать либо действующая пара ключей или использовать HOTP (новый одноразовый пароль (OTP) для каждого запроса) аутентификация на основе OATH - я это делаю. Я почти уверен, что Google Authenticator - это просто еще одна реализация OATH.

Мою полную рецензию можно прочитать на http://www.teaparty.net/technotes/yubikey-oath.html, но результат таков:

Предполагая, что ваш sshd уже настроен для разрешения аутентификации на основе открытого ключа (большинство из них), добавьте эти две строки в sshd_config:

PasswordAuthentication no
ChallengeResponseAuthentication yes 

Установить pam_auth (это ориентированный на CentOS способ для x86_64):

yum install pam_oath
ln -s /usr/lib64/security/pam_oath.so /lib64/security/

Сделайте файл аутентификации /etc/users.oath, Режим 600, владелец root:rootи заполните его такими строками, как:

#type   username        pin     start seed
HOTP    fred            -       123a567890123b567890123c567890123d567890

редактировать /etc/pam.d/sshd и добавьте строку

auth required pam_oath.so usersfile=/etc/users.oath window=5 digits=8 

Пропустить digits=8 если вас устраивает 6-значный HOTP OATH. Я считаю, что аналогичный метод можно использовать для TOTP OATH (новый OTP каждые п секунд), но я использую аппаратные токены OATH вместо программных, а это yubikeys, которые делают только HOTP OATH.

Единственная проблема заключается в том, что когда вы заходите по ssh без предоставления действительного ключа, он запрашивает код OATH. перед пароль. Я не мог заставить все работать наоборот, но решил, что мне все равно; подсказки довольно ясно дают понять, какой токен запрашивается.

Вам нужно добавить:

AuthenticationMethods publickey keyboard-interactive

без запятой между publickey и keyboard-interactive к /etc/ssh/sshd_config. Все остальные настройки изменять не нужно (при условии, что конфигурация соответствует данному руководству howtogeek).