Это была моя ошибка: модуль на самом деле вызывался, но он пытался прочитать строку с консоли.Хотя это работает при входе в систему, в SSH это невозможно.Правильный способ сделать это - использовать
const char *username = NULL;
const char *password = NULL;
pam_get_item(pamh, PAM_USER, (const void **)&username);
pam_get_item(pamh, PAM_AUTHTOK, (const void **)&password);
. Это установит username
и password
со значениями, полученными SSH.Чтобы получить пароль, установите PasswordAuthentication
на yes
в /etc/ssh/sshd_config
и в etc/pam.d/sshd
, замените @include common-auth
на auth required your-module