Zamknutí uživatelského hesla
Vypnout přihlášení uživatele heslem lze uzamknutím jeho hesla. Stačí použít příkaz passwd s přepínačem -l (--lock) následovaným uživatelským jménem:
sudo passwd -l newman
Přepínač -l zakáže heslo jeho změnou na hodnotu, která neodpovídá žádné možné zašifrované hodnotě. V důsledku toho se uživatel nebude moci přihlásit. Přihlášení SSH klíčem zůstává funkční, pokud má SSH server zapnuté PAM (UsePAM yes, výchozí v Debianu a Ubuntu) – bez PAM odmítne SSH zamčený účet úplně, i s klíčem. Pokud bychom chtěli dosáhnout úplného zákazu přihlašování, tak musíme ještě změnit user shell třeba takto:
sudo usermod -s /usr/sbin/nologin newman
Vypnutí hesel přímo v SSH
Když jde jen o vzdálené přihlášení, spolehlivější je vypnout hesla přímo v konfiguraci SSH serveru. Heslo pak není potřeba zamykat a lokální přihlášení heslem, třeba na konzoli serveru, zůstane. Pro jednoho uživatele stačí na konec souboru /etc/ssh/sshd_config přidat blok Match – platí až do konce souboru nebo do dalšího Match. Pro všechny uživatele nastavte mimo něj PasswordAuthentication no (a KbdInteractiveAuthentication no, pokud ji máte zapnutou).
Match User newman
AuthenticationMethods publickey
Před načtením konfiguraci zkontrolujte a stávající připojení nechte otevřené, ať se při chybě nezamknete:
sudo sshd -t && sudo systemctl reload ssh
Odemknutí uživatelského hesla
Pro opětovné povolení přihlašování heslem pak stačí heslo odemknout pomocí přepínače -u (--unlock):
sudo passwd -u newman
Zjištění stavu uživatelského hesla
Pokud chceme zjistit stav hesla uživatele, použijeme přepínač -S (--status):
sudo passwd -S newman
Výsledek pak může vypadat nějak následovně:
$ sudo passwd -S newman
newman L 06/15/2021 0 99999 7 -1
Výstupem jsou informace v sedmi sloupcích, jejichž význam je následující:
- uživatelské přihlašovací jméno,
- informace, zda je účet uzamčen (L), nemá heslo (NP), nebo má funkční heslo (P),
- datum poslední změny hesla,
- minimální počet dní kdy může být heslo znovu změněno po předchozí změně,
- maximální počet dní před tím, než heslo musí být znovu změněno,
- počet dní před vypršením platnosti hesla, kdy uživatel začne dostávat varování,
- počet dní po vypršení platnosti hesla, když je uživatel deaktivován.
Pro informace v tomto zápisku jsem nejvíce čerpal z tohoto článku, kde jsou popsané další možnosti jak pracovat s uživatelským heslem.