Czytałem gdzie indziej inne osoby z prośbą o „naprawienie” SSH, aby zablokowane konta nie mogły zostać zalogowane przez SSH. (patrz błąd Debiana 219377) To żądanie zostało odrzucone jako łata „ponieważ łamie ono niektóre oczekiwania użytkowników [którzy byli] przyzwyczajeni do passwd -l tylko blokowanie passwd.” (patrz błąd Debiana 389183) np. niektóre osoby CHCĄ móc blokować konta przed logowaniem się do hasła, ale nadal zezwalać na dostęp do klucza SSH.
PAM nie odmawia uwierzytelnienia klucza SSH na kontach, które właśnie zostały zablokowane (np. Z powodu nieprawidłowych prób hasła, ponieważ uwierzytelnianie klucza SSH ma na celu nie zwracanie uwagi na pole hasła, z którego zazwyczaj konta są blokowane).
Rozumiem, że wpis skrótu hasła jest domyślnie sprawdzany w czasie pam_authenicate (), a nie w pam_acct_mgmt (). pam_unix.so pam_sm_acct_mgmt () w ogóle nie sprawdza skrótu hasła, a pam_authenticate () nie jest wywoływany podczas uwierzytelniania klucza publicznego.
Jeśli masz zamiar móc centralnie wyłączyć logowanie z konta, istnieją inne możliwe obejścia, w tym:
Zmiana powłoki logowania.
(ponowne) przenoszenie pliku kluczy autoryzowanych.
Inną opcją odmowy dostępu może być użycie DenyGroups lub AllowGroups w sshd_config. (następnie dodając użytkownika do grupy „sshdeny” lub usuwając go z grupy „sshlogin”, aby wyłączyć ich logowanie). (czytaj tutaj: https://help.ubuntu.com/8.04/serverguide/user-management .html )
Ze strony http://web.archiveorange.com/archive/v/67CtqEoe5MhDqkDmUMuL
czytam: „Problem polega na tym, że pam_unix sprawdza tylko daty ważności wpisu cienia, a nie zawartość pola skrótu hasła”. Jeśli to prawda, czy wygaśnięcie konta zamiast zablokowania go zrobi, czego potrzebujesz?
Odpowiedź na twoje pytanie brzmi „tak, jeśli wyłączasz je w innym miejscu niż pole hasła”
account optional pam_echo.so file=/etc/redhat-release
do /etc/pam.d/sshd powoduje wydrukowanie zawartości pliku podczas korzystania z logowań uwierzytelniających opartych na kluczach (spróbuj).