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

Вход по SSH с определенными методами аутентификации

У меня небольшой сервер, и я хотел бы войти в систему с помощью SSH двумя способами:

Я успешно установил libpam-python, и добавил эту строку в /etc/pam.d/sshd:

auth   requisite   /lib/x86_64-linux-gnu/security/pam_python.so /lib/x86_64-linux-gnu/security/my_pam.py

В качестве примера предположим, что мой python pam работает и просто запрашивает другой пароль.

Вот соответствующие параметры в моем /etc/ssh/sshd_config:

# PAM
UsePAM yes
ChallengeResponseAuthentication yes

# Regular password
PasswordAuthentication yes
PermitEmptyPasswords no

# Authentication Methods
# Either an authorised public key, or the password + another one (python pam).
AuthenticationMethods publickey password,keyboard-interactive:pam

К сожалению, это не работает:

# I am not using an authorized public key
me@client:~$ ssh user@myserver
user@myserver's password: 
Permission denied, please try again.
user@myserver's password: 
Permission denied, please try again.
user@myserver's password: 
Permission denied (publickey,password).

Мой пароль правильный! Если я верну параметры к значениям по умолчанию, мой пароль будет распознан, и я смогу войти в систему!

Проблема, кажется, в AuthenticationMethods параметр. Если я удалю, все заработает:

me@client:~$ ssh user@myserver
Python PAM password:
Password OK!
END OF PYTHON PAM. 
Password: 
user@myserver:~$

Обратите внимание, что классический user@myserver's password: был заменен кормой Password:.

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

Как я могу решить эту проблему?