Ssh и google-authenticator

Материал из rrv-wiki
Перейти к навигации Перейти к поиску


Настраиваем на Debian.

Устанавливаем:

# apt install libpam-google-authenticator

Затем под пользователем под которым требуется второй фактор:

$ google-authenticator
Do you want authentication tokens to be time-based (y/n) y

Добавляем QR-код в Google Authenticator на телефоне и сохраняем ссылку и (или) QR-код в надежное место на случай восстановления, если например телефон умер.

Затем отвечаем так:

Do you want me to update your "/home/rrv/.google_authenticator" file? (y/n) y

Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n) y

By default, tokens are good for 30 seconds. In order to compensate for
possible time-skew between the client and the server, we allow an extra
token before and after the current time. If you experience problems with
poor time synchronization, you can increase the window from its default
size of +-1min (window size of 3) to about +-4min (window size of
17 acceptable tokens).
Do you want to do so? (y/n) n

If the computer that you are logging into isn't hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting (y/n) y

Для авторизации с паролем

Добавляем в /etc/pam.d/sshd

auth required pam_unix.so no_warn try_first_pass
auth required pam_google_authenticator.so

Затем в /etc/ssh/sshd_config проверяем настройки, что надо меняем и добавляем, должны быть следующие значения (тут настраивается для пользователя rrv):

ChallengeResponseAuthentication yes
Match User rrv
 AuthenticationMethods keyboard-interactive

Для авторизации по ключам

В /etc/pam.d/sshd комментируем все строки начинающиеся с auth иначе будут все виды авторизации

# Standard Un*x authentication.
#@include common-auth

#auth substack password-auth
#auth required pam_unix.so no_warn try_first_pass

Добавляем строку:

auth required pam_google_authenticator.so

Затем в /etc/ssh/sshd_config проверяем настройки, что надо меняем и добавляем, должны быть следующие значения (тут настраивается для пользователя rrv):

ChallengeResponseAuthentication yes
Match User rrv
 AuthenticationMethods publickey,keyboard-interactive

Перезапускаем sshd

# service sshd restart

Пробуем подключатся.