Я читав деінде інші люди, які просять "виправити" SSH, щоб заблоковані акаунти не могли входити через SSH. (див. помилку Debian 219377) Цей запит було відхилено як виправлення, "оскільки воно порушує деякі очікування користувачів [, які] використовувались для passwd-я, лише блокуючи passwd". (див. помилку Debian 389183), наприклад, деякі люди ХОЧУТЬ мати можливість блокувати облікові записи з паролів, але все ж дозволяють SSH-ключ.
PAM не забороняє автентифікацію ключа SSH для щойно заблокованих облікових записів (наприклад, через недійсні спроби пароля, оскільки автентифікація ключа SSH призначена для того, щоб не звертати уваги на поле пароля, звідки зазвичай блокуються облікові записи.)
Я розумію, що введення хеша пароля неявно перевіряється під час pam_authenicate (), а не під час pam_acct_mgmt (). pam_unix.so pam_sm_acct_mgmt () взагалі не перевіряє хеш пароля, а pam_authenticate () під час автентифікації відкритого ключа не викликається.
Якщо ви маєте намір увімкнути централізоване відключення облікових записів від входу, є й інші можливі вирішення проблем, зокрема:
Зміна оболонки для входу.
(повторно) переміщення файлу дозволених ключів.
Іншим варіантом заборонити доступ може бути деяке використання DenyGroups або AllowGroups в sshd_config. (Потім додавання користувача в групу «sshdeny», або видалення їх з групи «sshlogin» , щоб відключити їх від входу в систему ). (Читати тут: https://help.ubuntu.com/8.04/serverguide/user-management .html )
З http://web.archiveorange.com/archive/v/67CtqEoe5MhDqkDmUMuL
я читав: "Проблема полягає в тому, що pam_unix перевіряє терміни придатності тіньового запису, а не вміст поля хеша пароля". Якщо це правда, чи закінчується термін дії рахунку, а не блокується, робити все, що вам потрібно?
Відповідь на ваше запитання, можливо, "так, якщо ви їх відключили десь, крім поля пароля"
account optional pam_echo.so file=/etc/redhat-release
до /etc/pam.d/sshd призводить до друку вмісту файлу під час використання авторизованих авторизованих логінів (спробуйте).