Qualunque cosa tu faccia, non lasciare l'account nello stato lasciato da passwd -u
, con un campo password vuoto: ciò consente l'accesso senza inserire una password (tranne su SSH, perché SSH lo rifiuta).
Cambia l'account per non avere password, ma per sbloccarlo. Un account non ha password se l'hash della password nel database delle password non è l'hash di nessuna stringa. Tradizionalmente, una stringa di un carattere come *
o !
viene utilizzata per questo.
Gli account bloccati usano anche un marcatore speciale nel campo della password che fa sì che la stringa non sia l'hash di nessuna stringa. Il marker dipende dal sistema. Su Linux, il passwd
comando contrassegna le password bloccate inserendo !
a all'inizio e OpenSSH considera l'account come bloccato se il campo inizia con !
. Altre varianti di Unix tendono a utilizzare meccanismi simili ma non identici, quindi fai attenzione se il database delle password è condiviso tra una rete eterogenea.
Su Linux, è possibile disabilitare l'accesso basato su password a un account consentendo l'accesso SSH (con qualche altro metodo di autenticazione, in genere una coppia di chiavi) con
usermod -p '*' username
L'utente non sarà in grado di ripristinare l'account per avere una password, perché ciò richiede che inserisca una password valida.
Se lo desideri, puoi invece configurare SSH per rifiutare l'autenticazione della password, indipendentemente dal fatto che l'account abbia una password. Dovrai comunque fare in modo che SSH non consideri l'account bloccato, quindi ad esempio su Linux dovrai rimuovere il !
campo dalla password (ma non rendere il campo vuoto - impostalo *
come spiegato sopra ). Per disabilitare l'autenticazione della password per SSH, aggiungere una PasswordAuthentication
direttiva /etc/sshd_config
o /etc/ssh/sshd_config
(qualunque sia sul proprio sistema). Utilizzare un Match
blocco per rendere tale direttiva applicabile solo a un utente specifico; Match
i blocchi devono apparire
…
Match User username
PasswordAuthentication no