un'altra soluzione, che migliora la sicurezza e al contempo ti semplifica la vita, quindi non è necessario digitare la password in ogni momento:
se si desidera crittografare la chiave privata, è possibile utilizzare ssh-agent
sulla workstation per "memorizzare nella cache" la chiave non crittografata. quando vuoi archiviare la tua chiave decodificata, corri ssh-add ~/.ssh/id_rsa
o come la tua chiave privata viene chiamata. ti verrà richiesta la password e la chiave decodificata sarà disponibile per le tue connessioni ssh fino a quando non ti disconnetti, uccidi ssh-agent
o spegni.
puoi usare kill
le chiavi memorizzate ssh-agent -k
e puoi assegnare una vita per la chiave in memoria ssh-agent -t [seconds]
, ad esempio; se non vuoi mantenere la tua chiave decifrata per sempre, ma vuoi fare un sacco di sparse tra i tuoi host, puoi impostare il timeout su 5-10 minuti. quindi non è necessario inserire continuamente la password della chiave.
di nuovo, tutto questo ha a che fare con la fiducia che hai della sicurezza della tua / workstation /, che, se sei l'unico che ha accesso ad essa, e hai una password locale piuttosto sicura, e non lo fai invita exploit e rootkit su te stesso, la tua chiave privata senza passphrase è ragionevolmente sicura.
se sei come me e mantieni la tua chiave privata su una chiavetta USB, sicuramente vorrai crittografarla, anche se è solo una chiave privata (una separata dalla quale utilizzo sulla mia workstation, quindi se perdo la mia chiave, posso facilmente rimuovere la chiave pubblica della chiavetta dalla ~/.ssh/authorized_keys
lista del mio server , che porta anche un / eccellente / motivo per aggiungere commenti UTILI alle tue chiavi pubbliche)
nella tua risposta a una risposta precedente, hai detto che solo le persone di cui ti fidi hanno accesso alla macchina con le chiavi. voglio solo chiarire che la tua chiave privata NON deve trovarsi sul server a cui ti stai connettendo, nel caso sia quello che stai facendo. solo la tua chiave pubblica deve trovarsi sul server, e questo è un problema, motivo per cui è una chiave "pubblica".
oh, ho dimenticato di menzionare; avvio ssh-agent
quando avvio X, altrimenti le chiavi crittografate con cui conservo ssh-add
non vengono conservate attraverso xterm
sessioni diverse e devo reinserire la password ogni volta che chiudo l' xterm
avvio ssh-add
. nel mio ~/.xinitrc
file, ho:
if [ -x /usr/bin/ssh-agent ]; then
eval $(/usr/bin/ssh-agent)
fi
ho la chiamata da ssh-agent
concludere eval
perché ssh-agent restituisce alcune variabili di ambiente che devono essere impostate quando viene eseguito e, da quando vengono eseguite ~/.xinitrc
, le variabili di ambiente sono costanti durante la sessione X.