Come rimuovo la passphrase per la chiave SSH senza dover creare una nuova chiave?
-
02-07-2019 - |
Domanda
Ho impostato una passphrase durante la creazione di una nuova chiave SSH sul mio laptop. Ma, come mi rendo conto ora, questo è abbastanza doloroso quando stai cercando di impegnarti ( Git e SVN ) in una posizione remota su SSH molte volte in un'ora.
Un modo in cui riesco a pensare è quello di eliminare le mie chiavi SSH e crearne di nuove. C'è un modo per rimuovere la passphrase, pur mantenendo le stesse chiavi?
Soluzione
Risposta breve:
$ ssh-keygen -p
Questo ti chiederà quindi di inserire la posizione del file di chiavi, la vecchia passphrase e la nuova passphrase (che può essere lasciata vuota per non avere passphrase).
Se vuoi fare tutto su una riga senza istruzioni, fai:
$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
Importante: fai attenzione che quando eseguono i comandi in genere verranno registrati nel tuo file ~ / .bash_history
(o simile) in testo normale, inclusi tutti gli argomenti forniti (es. passphrase in questo caso). Si consiglia pertanto di utilizzare la prima opzione a meno che non si abbia un motivo specifico per fare diversamente. Si noti tuttavia che è ancora possibile utilizzare -f keyfile
senza dover specificare -P
né -N
e che il file di chiavi è predefinito su ~ / .ssh / id_rsa
, quindi in molti casi non è nemmeno necessario.
Potresti prendere in considerazione l'uso di ssh-agent, che può memorizzare la passphrase per un certo periodo di tempo. Le ultime versioni di gpg-agent supportano anche il protocollo utilizzato da ssh-agent.
Altri suggerimenti
Potresti voler aggiungere quanto segue al tuo .bash_profile (o equivalente), che avvia ssh-agent all'accesso.
if [ -f ~/.agent.env ] ; then
. ~/.agent.env > /dev/null
if ! kill -0 $SSH_AGENT_PID > /dev/null 2>&1; then
echo "Stale agent file found. Spawning new agent… "
eval `ssh-agent | tee ~/.agent.env`
ssh-add
fi
else
echo "Starting ssh-agent"
eval `ssh-agent | tee ~/.agent.env`
ssh-add
fi
Su alcune distro Linux (Ubuntu, Debian) puoi usare:
ssh-copy-id -i ~/.ssh/id_dsa.pub username@host
Questo copierà l'id generato su una macchina remota e lo aggiungerà al portachiavi remoto.
$ ssh-keygen -p
ha funzionato per me
Git bash aperto. Incollato: $ ssh-keygen -p
Premi invio per posizione predefinita.
Inserisci la vecchia passphrase
Inserisci una nuova passphrase - BLANK
Conferma nuova passphrase - BLANK
BOOM il dolore di inserire la passphrase per git push era sparito.
Grazie!