iD-SIGN
Ptejte se

Vypnutí přihlášení uživatele heslem v Linuxu

Často se hodí mít u některých uživatelů v linuxovém systému vypnuté vzdálené přihlášení heslem a povolené pouze SSH klíčem. Zde je návod jak na to.

2 min čtenívydáno 9/2022

V tomto článku 4 kapitoly
  1. Zamknutí uživatelského hesla
  2. Vypnutí hesel přímo v SSH
  3. Odemknutí uživatelského hesla
  4. Zjištění stavu uživatelského hesla

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:

bash
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:

bash
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).

bash
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:

bash
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):

bash
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):

bash
sudo passwd -S newman

Výsledek pak může vypadat nějak následovně:

bash
$ 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í:

  1. uživatelské přihlašovací jméno,
  2. informace, zda je účet uzamčen (L), nemá heslo (NP), nebo má funkční heslo (P),
  3. datum poslední změny hesla,
  4. minimální počet dní kdy může být heslo znovu změněno po předchozí změně,
  5. maximální počet dní před tím, než heslo musí být znovu změněno,
  6. počet dní před vypršením platnosti hesla, kdy uživatel začne dostávat varování,
  7. 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.

Sdílet LinkedIn Facebook

Potřebujete víc než článek?

Zkuste se nám nezávazně ozvat – stačí několik vět o tom, co řešíte.