chiave ssh persiste anche dopo aver eliminato la chiave privata da ~ / .ssh - perché?

14

Ho generato chiavi SSH (pubbliche e private) e le ho memorizzate in ~/.ssh/myServer/ .

Ho aggiunto la chiave pubblica al file ~/.ssh/authorized_keys del server e tutto funziona alla grande!

Nel tentativo di capire come funzionano le chiavi, li ho cancellati e sono rimasto sorpreso nel constatare che ero ancora in grado di connettermi al server.

Perché è ancora possibile connettermi senza password?

    
posta FAYNUS 12.01.2015 - 05:48
fonte

1 risposta

21

Benvenuti nel meraviglioso mondo di OS X Keychain e ssh-agent ! Dalla pagina man:

ssh-agent is a program to hold private keys used for public key authentication (RSA, DSA, ECDSA). The idea is that ssh-agent is started in the beginning of an X-session or a login session, and all other windows or programs are started as clients to the ssh-agent program. Through use of environment vari-ables variables ables the agent can be located and automatically used for authentication when logging in to other machines using ssh(1).

La tua chiave privata è stata memorizzata nella cache nell'agente e viene recuperata da lì per autenticare la tua sessione. OS X, tramite Keychain, esegue automaticamente il caching ssh-agent per te perché è "user friendly". Può essere un po 'allarmante, ma è soprattutto una cosa pratica che ciò accada.

Il tempo di vita predefinito per le chiavi memorizzate nella cache è per sempre. Probabilmente non è un gran bel difetto. Svuota le chiavi memorizzate nella cache in un logout / login-cycle o un riavvio. Oppure puoi forzare un colore uccidendo l'agente corrente usando:

ssh-add -D

Puoi elencare tutte le credenziali memorizzate nella cache dall'agente eseguendo:

ssh-add -l

Questo farà lo stesso ma mostrerà le chiavi pubbliche complete:

ssh-add -L
    
risposta data 12.01.2015 - 05:58
fonte

Leggi altre domande sui tag