Cokolwiek zrobisz, nie pozostawiaj konta w stanie pozostawionym przez passwd -u
, z pustym polem hasła: pozwala na logowanie bez wprowadzania hasła (z wyjątkiem SSH, ponieważ SSH tego odmawia).
Zmień konto, aby nie mieć hasła, ale zostanie odblokowane. Konto nie ma hasła, jeśli skrót hasła w bazie danych haseł nie jest skrótem żadnego ciągu. Tradycyjnie używany jest do tego ciąg jednoznakowy, taki jak *
lub !
.
Zablokowane konta używają również specjalnego znacznika w polu hasła, który powoduje, że łańcuch nie jest skrótem żadnego łańcucha. Znacznik zależy od systemu. W systemie Linux passwd
polecenie oznacza zablokowane hasła, umieszczając !
na początku symbol a, a OpenSSH traktuje konto jako zablokowane, jeśli pole zaczyna się od !
. Inne warianty Uniksa zwykle używają podobnych, ale nie identycznych mechanizmów, więc uważaj, jeśli baza danych haseł jest współużytkowana przez sieć heterogeniczną.
W systemie Linux można wyłączyć dostęp do konta za pomocą hasła, jednocześnie umożliwiając dostęp SSH (za pomocą innej metody uwierzytelniania, zwykle pary kluczy) za pomocą
usermod -p '*' username
Użytkownik nie będzie mógł przywrócić konta do hasła, ponieważ wymaga to podania prawidłowego hasła.
Jeśli chcesz, możesz zamiast tego skonfigurować SSH, aby odmawiał uwierzytelnienia za pomocą hasła, niezależnie od tego, czy konto ma hasło. Nadal będziesz musiał zadbać o to, aby SSH nie traktował konta jako zablokowanego, więc na przykład w systemie Linux musisz usunąć !
pole hasła (ale nie pozostaw tego pola pustego - ustaw je *
zgodnie z powyższym opisem ). Aby wyłączyć uwierzytelnianie hasła dla SSH, dodaj PasswordAuthentication
dyrektywę do /etc/sshd_config
lub /etc/ssh/sshd_config
(w zależności od tego, co znajduje się w twoim systemie). Użyj Match
bloku, aby ta dyrektywa miała zastosowanie tylko do określonego użytkownika; Match
bloki muszą się pojawić
…
Match User username
PasswordAuthentication no