GNU/Linux >> Znalost Linux >  >> Linux

Jak zjistit, zda uživatel používá ověřování SSH na základě hesla nebo klíče v systému Linux

Představte si tento scénář. Právě jste nakonfigurovali ověření pomocí klíče SSH na vašem linuxovém serveru. A pak jste se rozhodli zcela zakázat ověřování na základě hesla a povolit všem uživatelům pouze ověřování na základě klíče. Před deaktivací ověřování heslem byste chtěli ověřit, kteří uživatelé stále používají hesla pro přístup k serveru přes SSH. jak to uděláš? No, je to možné! Tento stručný průvodce vysvětluje, jak zjistit, zda uživatel v Linuxu používá ověřování SSH na základě hesla nebo klíče.

Zjistěte, zda uživatel používá ověřování SSH na základě hesla nebo klíče

Zda je uživatel přihlášen k linuxovému serveru pomocí SSH, můžeme zjistit pomocí hesla nebo klíče ssh. Není to 100% spolehlivý a zaručený způsob, ale stále je to dobrý přístup.

Nejprve zkontrolujte, zda ~/.ssh/authorized_keys soubor existuje. Protože v metodě ověřování založené na klíči SSH by měl být veřejný klíč SSH nahrán do systémů, ke kterým chcete přistupovat prostřednictvím SSH. Veřejné klíče budou obvykle uloženy v souboru s názvem ~/.ssh/authorized_keys ve vzdálených systémech. Pokud tento soubor existuje, existuje šance, že uživatel pravděpodobně používá ověřování na základě klíče.

Dále zkontrolujte soubory protokolu ověřování a ověřte, jakou metodu ověřování uživatel aktuálně používá pro přístup ke vzdálenému systému. Metoda ověřování je přihlášena do "/var/log/secure" soubor v systémech založených na RPM (např. CentOS), "/var/log/auth.log" soubor na systémech založených na DEB (např. Ubuntu).

Stačí vyhledat heslo v souborech protokolu ověřování pomocí příkazu grep nebo jakýmkoli jiným způsobem, který preferujete.

$ grep 'password' /var/log/secure

Nebo,

$ grep 'password' /var/log/auth.log

Ukázkový výstup:

[...]
May  8 10:40:36 ostechnix sshd[3303]: Accepted password for senthil from 192.168.225.37 port 41990 ssh2
May  8 10:40:56 ostechnix sshd[3405]: Accepted password for sk from 192.168.225.37 port 41992 ssh2

Všimli jste si řádků "Přijato heslo pro ..."? ve výše uvedeném výstupu? To znamená, že uživatel přistupuje ke vzdáleným systémům pomocí hesla. Podle výše uvedeného výstupu uživatelé "senthil" a "sk" přistupují ke vzdálenému systému pomocí ověřování heslem ssh.

Pokud uživatel používá autentizaci na základě klíče, pravděpodobně uvidíte výstup jako níže:

May 8 10:40:56 ostechnix sshd[3405]: Accepted publickey for sk from 192.168.225.37 port 41992 ssh2

Samozřejmě je to trochu obtížné, pokud je soubor protokolu velmi dlouhý s velkým počtem záznamů. V takovém případě použijte "tail" příkaz pro zobrazení určitého počtu souborů protokolu.

Například následující příkaz zobrazí pouze posledních 10 položek souboru protokolu:

$ grep 'password' /var/log/auth.log | tail -n 10

Ukázkový výstup:

May  8 10:21:49 ostechnix sshd[2135]: Accepted password for senthil from 192.168.225.37 port 41920 ssh2
May  8 10:21:57 ostechnix sshd[2222]: Accepted password for sk from 192.168.225.37 port 41922 ssh2
May  8 10:24:57 ostechnix sshd[2360]: Accepted password for senthil from 192.168.225.37 port 41924 ssh2
May  8 10:25:04 ostechnix sshd[2448]: Accepted password for sk from 192.168.225.37 port 41926 ssh2
May  8 10:29:40 ostechnix sshd[2663]: Accepted password for senthil from 192.168.225.37 port 41938 ssh2
May  8 10:29:55 ostechnix sshd[2765]: Accepted password for sk from 192.168.225.37 port 41940 ssh2
May  8 10:39:34 ostechnix sshd[3064]: Accepted password for senthil from 192.168.225.37 port 41986 ssh2
May  8 10:39:55 ostechnix sshd[3184]: Accepted password for sk from 192.168.225.37 port 41988 ssh2
May  8 10:40:36 ostechnix sshd[3303]: Accepted password for senthil from 192.168.225.37 port 41990 ssh2
May  8 10:40:56 ostechnix sshd[3405]: Accepted password for sk from 192.168.225.37 port 41992 ssh2

Můžete také použít -f příznak, abyste při testování sledovali protokol.

$ grep 'password' /var/log/auth.log | tail -f -n 10

Pokud chcete v celém souboru protokolu najít "heslo" záznamy stránku po stránce, použijte "less" příkaz:

$ grep 'password' /var/log/auth.log | less

Chcete-li najít všechny protokoly související s sshd (úspěšné nebo neúspěšné pokusy), nahraďte "heslo" za "sshd" ve všech výše uvedených příkazech.

$ grep 'sshd' /var/log/auth.log | tail -n 10

Další příručky související s SSH:

  • Povolení nebo odepření přístupu SSH konkrétnímu uživateli nebo skupině v systému Linux
  • Omezit počet přihlášení SSH na uživatele/skupinu/systém
  • Omezit přístup k serverům Linux pomocí TCP Wrappers
  • Provádění příkazů na vzdálených systémech Linux prostřednictvím SSH
  • Jak vytvořit alias SSH v systému Linux
  • Jak SSH do konkrétního adresáře v systému Linux
  • SSLH – Sdílejte stejný port pro HTTPS a SSH
  • ScanSSH – rychlý server SSH a otevřený skener proxy
  • Jak obnovit částečně přenesené soubory přes SSH pomocí Rsync
  • Jak spustit jeden příkaz na více vzdálených systémech najednou
  • DSH – Spusťte příkaz Linux na více hostitelích současně
  • Jak zabránit odpojování relace SSH v systému Linux
  • Jak povolit SSH na FreeBSD

Doufám, že to pomůže.


Linux
  1. Jak najít všechny uživatele Sudo v Linuxu

  2. Jak nakonfigurovat ověřování na základě klíče SSH v systému Linux

  3. Jak vytvořit uživatele Linuxu pomocí Ansible

  1. Jak najít aktivní připojení SSH v systému Linux

  2. Jak změnit, odebrat nebo zakázat uživatelské heslo v systému Linux

  3. Jak resetovat heslo správce Plesk pomocí SSH na serveru Linux?

  1. Jak změnit heslo v Linuxu – průvodce krok za krokem

  2. Jak zakázat ověřování hesla SSH na Linux VPS

  3. Jak zjistit využití uživatelské paměti v linuxu