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


18

Ho generato chiavi ssh (pubbliche e private) e le ho archiviate ~/.ssh/myServer/.

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

Nel mio tentativo di cercare di capire come funzionano le chiavi, le ho eliminate e sono rimasto sorpreso di scoprire che ero ancora in grado di connettermi al server.

Perché sono ancora in grado di connettermi senza una password?

Risposte:


24

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

ssh-agent è un programma per contenere chiavi private utilizzate per l'autenticazione con chiave pubblica (RSA, DSA, ECDSA). L'idea è che ssh-agent viene avviato all'inizio di una X-session o di una sessione di login e tutte le altre finestre o programmi vengono avviati come client per il programma ssh-agent. Tramite l'uso di variabili variabili di ambiente, l'agente può essere localizzato e usato automaticamente per l'autenticazione quando si accede ad altre macchine usando ssh (1).

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

Il time-to-live predefinito per le chiavi memorizzate nella cache è per sempre. Questo probabilmente non è un grande default. Svuota le chiavi memorizzate nella cache al logout / login-cycle o al riavvio. Oppure puoi forzare un flush uccidendo l'agente corrente usando:

ssh-add -D

È possibile 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

Wow! Molte grazie! Ero davvero confuso su ciò che stava accadendo. Ora capisco!
poltj18,

2
@FAYNUS se questo risolve il problema per te, premi il segno di spunta verde sul lato destro per contrassegnarlo come "risposta accettata"! Benvenuti a chiedere diverso!
Ian C.
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.