GNU/Linux >> Linux Esercitazione >  >> Linux

Come scoprire se un utente utilizza l'autenticazione SSH basata su password o basata su chiave in Linux

Immagina questo scenario. Hai appena configurato l'autenticazione basata su chiave SSH nel tuo server Linux. E poi, hai deciso di disabilitare completamente l'autenticazione basata su password e di consentire solo l'autenticazione basata su chiave a tutti gli utenti. Prima di disabilitare l'autenticazione della password, desideri verificare quali utenti stanno ancora utilizzando le password per accedere al server tramite SSH. Come lo farai? Bene, è possibile! Questa breve guida spiega come scoprire se un utente utilizza l'autenticazione SSH basata su password o chiave in Linux.

Trova se un utente utilizza l'autenticazione SSH basata su password o chiave

Possiamo identificare se un utente ha effettuato l'accesso a un server Linux tramite SSH utilizzando una password o una chiave ssh. Non è un modo affidabile e garantito al 100%, ma è comunque un buon approccio.

Innanzitutto, controlla se il ~/.ssh/authorized_keys il file esiste. Perché, nel metodo di autenticazione basato su chiave SSH, la chiave pubblica SSH deve essere caricata sui sistemi a cui si desidera accedere tramite SSH. Le chiavi pubbliche verranno generalmente archiviate in un file chiamato ~/.ssh/authorized_keys nei sistemi remoti. Se questo file esiste, è probabile che l'utente stia probabilmente utilizzando l'autenticazione basata su chiave.

Quindi, controlla i file di registro di autenticazione per verificare quale metodo di autenticazione sta attualmente utilizzando l'utente per accedere al sistema remoto. Il metodo di autenticazione è registrato in "/var/log/secure" file su sistemi basati su RPM (es. CentOS), "/var/log/auth.log" file su sistemi basati su DEB (es. Ubuntu).

Cerca la password inserita nei file di registro dell'autenticazione utilizzando il comando grep o in qualsiasi altro modo tu preferisca.

$ grep 'password' /var/log/secure

Oppure,

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

Risultato di esempio:

[...]
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

Hai notato le righe "Password accettata per..." nell'output sopra? Significa che l'utente sta accedendo ai sistemi remoti tramite password. Come per l'output sopra, gli utenti "senthil" e "sk" stanno accedendo al sistema remoto utilizzando l'autenticazione con password ssh.

Se l'utente utilizza l'autenticazione basata su chiave, probabilmente vedresti un output come di seguito:

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

Naturalmente, è un po' difficile se il file di registro è molto lungo con un numero elevato di voci. In tal caso, usa "tail" comando per visualizzare un determinato numero di file di registro.

Ad esempio, il comando seguente visualizzerà solo le ultime 10 voci del file di registro:

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

Risultato di esempio:

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

Puoi anche usare -f contrassegna per seguire il registro durante il test.

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

Se desideri controllare l'intero file di registro per trovare "password" voci pagina per pagina, usa "less" comando:

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

Per trovare tutti i log relativi a sshd (tentativi riusciti o falliti), sostituisci "password" con "sshd" in tutti i comandi precedenti.

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

Altre guide relative a SSH:

  • Consenti o nega l'accesso SSH a un particolare utente o gruppo in Linux
  • Limita il numero di accessi SSH per utente/gruppo/sistema
  • Limita l'accesso ai server Linux utilizzando i wrapper TCP
  • Esegui comandi su sistemi Linux remoti tramite SSH
  • Come creare alias SSH in Linux
  • Come inserire SSH in una directory particolare su Linux
  • SSLH:condividi la stessa porta per HTTPS e SSH
  • ScanSSH:server SSH veloce e scanner proxy aperto
  • Come riprendere i file trasferiti parzialmente su SSH utilizzando Rsync
  • Come eseguire un comando singolo su più sistemi remoti contemporaneamente
  • DSH:esegui un comando Linux su più host alla volta
  • Come impedire la disconnessione della sessione SSH in Linux
  • Come abilitare SSH su FreeBSD

Spero che questo aiuti.


Linux
  1. Come trovare connessioni SSH attive su Linux

  2. Come modificare, rimuovere o disabilitare la password utente in Linux

  3. Come trovare tutti gli utenti Sudo in Linux

  4. Come configurare l'autenticazione basata su chiave SSH in Linux

  5. Come creare un utente Linux usando Ansible

Come disabilitare l'accesso SSH a un utente specifico in Linux

Come modificare o impostare la password utente in Linux

Come passare la password al comando SSH in Linux

Come eseguire un backup Linux remoto utilizzando SSH

Come trovare la password WiFi salvata in Linux Mint utilizzando la GUI o il terminale

come configurare l'autenticazione basata su chiave SSH in Linux VPS o server dedicato