SSH: identifica quali utenti continuano ad accedere utilizzando le password


32

Ho un server Ubuntu Linux che consente l'autenticazione con password per SSH e voglio passare solo alle chiavi SSH e disabilitare l'accesso con password.

Prima di disabilitare l'accesso con password, come posso sapere quali utenti stanno ancora utilizzando le password e quali sono passati all'autenticazione con chiave?


A proposito, mentre molte persone non lo sanno, puoi anche chiedere la chiave e la password del server. Un po 'più fastidioso, ma ovviamente anche più sicuro, se lo fai ...
Deviantfan,

34
Disabilita l'accesso con password senza preavviso e vedi quante persone urlano.
Segna il


@deviantfan Sarebbe più sicuro richiedere semplicemente un file di chiavi più lungo , ma richiederebbe un po 'di scripting.
jpaugh

1
@deviantfan Prendo il tuo punto. Ma stai assumendo che la password per la chiave privata sia diversa da quella per il server; (mentre, sto supponendo che il file della chiave privata ha una password, lo so.)
jpaugh

Risposte:


48

Non puoi farlo in modo affidabile al 100%, ma ci sono due forti indicazioni:

  • Innanzitutto, la presenza di un .ssh/authorized_keysfile è un suggerimento che l'utente è almeno pronto a utilizzare l'accesso basato su chiave
  • Secondo, nel file di registro di autenticazione ( /var/log/securesu CentOS, /var/log/auth.logsu Debian / Ubuntu), verrà registrato il metodo auth:

    Sep 28 13:44:28 hostname sshd[12084]: Accepted publickey for sven
    

    vs

    Sep 28 13:47:36 hostname sshd[12698]: Accepted password for sven
    

    Esegui la scansione del registro per le voci con la password menzionata per sapere chi sta ancora utilizzando le password. Questo non funzionerà con gli utenti che accedono raramente ovviamente a meno che tu non abbia una conservazione dei log molto lunga.


"Scansionando" il file di registro, presumo tu intenda opzioni sensate come l'utilizzo di grep? grep 'password' /var/log/ssh/sshd.log
djsmiley2k - CoW,

8
@ djsmiley2k: Sì, esattamente. O qualunque altro metodo tu preferisca per quell'attività.
Sven

Il primo metodo non è contrastato da adeguate pratiche di sicurezza, come 700autorizzazioni sulla .sshdirectory dell'utente e root squash nelle directory home montate?
Ogre Salmo33,

1
@ OgrePsalm33: puoi fare questa ricerca sul server NFS ...
Sven

1
@R ..: è possibile ottenere NFS ragionevolmente sicuro con NFSv4 e Kerberos (nel qual caso l'accesso basato su chiave diventa complicato). Oltre a ciò: Sì, l'accesso basato su chiave funziona senza problemi quando ~/.sshè impostato su 700e nelle directory home NFS schiacciate dalla radice, quindi deve chiaramente cambiare gli ID utente almeno per consentire all'autorizzazione basata su chiave di leggere authorized_keys.
Sven

19

Il modo più veloce è disabilitarlo e vedere chi bussa alla porta del tuo ufficio; p


6
Questo non è il modo più veloce, perché non tutti gli utenti possono accedere ogni giorno, mentre i registri possono mostrare chiaramente quando qualcuno ha effettuato l'accesso, quindi danno un risultato immediato
Ferrybig

3
Questo è il modo più lento. Le persone accedono al server solo se la loro applicazione è inattiva. Potrebbero volerci anni perché ciò accada.
Navin,

@pete sei il migliore :)
c4f4t0r,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.