[sisyphus] двухфакторная аутентификация с google authenticator

Alexei Mezin alexei.mezin на gmail.com
Чт Сен 19 17:55:07 MSK 2019


Сизиф, только что обновил систему, поставил google authenticator.

Настройки такие:
# cat /etc/pam.d/sshd
#%PAM-1.0
auth            required        pam_google_authenticator.so
auth            required        pam_userpass.so
auth            include         common-login-use_first_pass
account         include         common-login
password        include         common-login
session         include         common-login


В sshd_config изменил одну строку
# Change to yes to enable s/key passwords
ChallengeResponseAuthentication yes

Перезаупстил sshd.


Кратко резюмирую ситуацию:
если логиниться по сети, то ни один код не подходит, хоть в логах не 
пишется про ошибку с кодом, пишется только про "PAM: Application needs 
to call libpam again".

если логиниться на локалхост из уже открытой сессии, и ввести ДВА раза 
подряд один и тот же валидный код, то доходит до запроса пароля, но 
пароль оказывается неправильным. Если вводить один раз код, то ничего не 
происходит, снова запрашивает код.

Это у всех так, или я что-то неправильно готовлю?





Хронология: пытаюсь по сети попасть на сервер:

sshd[31113]: error: PAM: Application needs to call libpam again for 
alexei from 192.168.1.4
sshd(pam_google_authenticator)[31118]: Trying to reuse a previously used 
time-based code. Retry again in 30 seconds. Warning! This might mean, 
you are currently subject to a man-in-the-middle attack.
sshd(pam_google_authenticator)[31118]: Invalid verification code
sshd[31113]: error: PAM: Application needs to call libpam again for
alexei from 192.168.1.4

хм... просроченный код. Ок, жду следующего, ввожу:

sshd[31113]: error: PAM: Application needs to call libpam again for 
alexei from 192.168.1.4
sshd[31113]: Postponed keyboard-interactive for alexei from 192.168.1.4 
port 42962 ssh2 [preauth]

А нифига не работает.

Ок, попытка номер два, в этот раз логин из уже залогиненной сессии

sshd(pam_google_authenticator)[31352]: Failed to compute location of 
secret file
sshd[31348]: error: PAM: Application needs to call libpam again for 
alexei from 127.0.0.1
sshd[31348]: error: PAM: Application needs to call libpam again for 
alexei from 127.0.0.1

и так далее. В итоге если ДВА раза подряд ввести правильный (не 
протухший во времени) код, то система запрашивает обычным запросом 
пароль пользователя, но даже правильный пароль не принимает!

sshd[31348]: pam_tcb(sshd:auth): Authentication passed for alexei from 
(uid=0)
sshd[31348]: Failed password for alexei from 127.0.0.1 port 54922 ssh2





Подробная информация о списке рассылки Sisyphus