Sembra che ssh-add -K ~/.ssh/id_rsa
caricherà la tua chiave ma chiederà la password ogni volta che riavvii.
Sto cercando una soluzione che non richieda di reinserire la password della chiave tra gli accessi.
Commenti
Rispondi
Su OSX , il client nativo ssh-add
ha un argomento speciale per salvare la passphrase della chiave privata nel portachiavi OSX, il che significa che il tuo login normale la sbloccherà per luso con ssh. Su OSX Sierra e successivamente, devi anche configurare SSH per utilizzare sempre il portachiavi (vedi il passaggio 2 di seguito).
In alternativa puoi usare una chiave senza passphrase, ma se preferisci la sicurezza che è certamente accettabile con questo flusso di lavoro.
Passaggio 1 – Memorizza la chiave nel portachiavi
Fallo solo una volta:
ssh-add -K ~/.ssh/[your-private-key]
Inserisci la passphrase della chiave e non ti verrà più chiesta.
(Se utilizzi una versione di OSX pre-Sierra, hai finito, il passaggio 2 non è richiesto.)
Passaggio 2 – Configura SSH per utilizzare sempre il portachiavi
Sembra che OSX Sierra abbia rimosso il comodo comportamento di rendere persistenti le tue chiavi tra i login e laggiornamento a ssh non utilizza più il portachiavi per impostazione predefinita. Per questo motivo, ti verrà chiesto di inserire la passphrase per una chiave dopo laggiornamento e di nuovo dopo ogni riavvio.
La soluzione è abbastanza semplice ed è delineata in questo commento sul thread GitHub . Ecco come impostarlo:
-
Assicurati di aver completato il passaggio 1 sopra per memorizzare la chiave nel portachiavi.
-
Se non lhai già fatto, crea un file
~/.ssh/config
. In altre parole, nella directory.ssh
della tua directory home, crea un file chiamatoconfig
. -
In quel
.ssh/config
file, aggiungi le seguenti righe :Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa
Cambia
~/.ssh/id_rsa
con il nome file effettivo della tua chiave privata. Se hai altre chiavi private nella tua~/.ssh
, aggiungi anche una rigaIdentityFile
per ciascuna di esse. Ad esempio, ho una riga aggiuntiva che leggeIdentityFile ~/.ssh/id_ed25519
per una seconda chiave privata.UseKeychain yes
è la parte della chiave, che dice a SSH di cercare la chiave nel tuo portachiavi OSX passphrase. -
Questo è tutto! La prossima volta che caricherai una connessione ssh, proverà le chiavi private che hai specificato e cercherà la loro passphrase nel portachiavi OSX. Non è richiesta la digitazione della passphrase.
Commenti
- @Poulsbo & @Abram – guarda il mio aggiornamento, Sierra ha cambiato il comportamento automatico e ora devi eseguire
ssh-add -A
manualmente per caricare il portachiavi salvato. Alcune possibili soluzioni a cui si fa riferimento sopra. - @trisweb Grazie per il suggerimento. joshbuchea ' per modificare il file
.ssh/config
sembra promettente! Vedi github.com/lionheart/openradar-mirror/issues/… - Funziona alla grande!Nel mio caso dovevo utilizzare il flag
A
oltre a quelloK
per aggiungere le mie chiavi al portachiavi e registrare la passphrase in it (ssh-add -AK ~/.ssh/[your-private-key]
). Grazie! - Anche con lopzione usekeychain, trovo comunque che il mio portachiavi lascerà cadere la chiave .ssh / id_rsa al riavvio.
- Ho fatto esattamente lo stesso e il mio Mac continua a rilasciare il chiave al riavvio.
Risposta
Ho avuto un problema simile, in quanto mi è stato chiesto ogni volta per la mia passphrase della chiave pubblica. Su suggerimento dellutente “trisweb” sopra, ho attivato queste opzioni per ~/.ssh/config
:
Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa
Ma veniva comunque richiesto ogni volta che volevo usare ssh. Alla fine ho acceso ssh -v
e ho trovato questa riga di debug:
debug1: key_load_private: incorrect passphrase supplied to decrypt private key
Ho quindi aperto il mio portachiavi in “Accesso portachiavi .app “, ha trovato la chiave denominata” SSH: /Users/username/.ssh/id_rsa “e lha aperta. Ho fatto clic su “Mostra password” per rivelare la password e in effetti ho scoperto che la passphrase nel portachiavi era una vecchia passphrase. Ho aggiornato la passphrase in Accesso Portachiavi e ora funziona senza password.
Avrei potuto aggiornare anche la passphrase con questa frase:
ssh-keygen -p -f ~/.ssh/id_rsa
Commenti
- Nel mio Mac la password viene salvata nella categoria “password” della catena “iCloud”. Pensavo fosse nella catena “log in”.
Answer
A tutti quelli in cui quanto sopra non ha funzionato , il mio problema sembra essere dovuto al fatto che stavo duplicando in tutto UseKeychain yes
& AddKeysToAgent yes
profili chiave ssh / scorciatoie. Ho aggiornato il mio file ~/.ssh/config
per dichiararli solo una volta e ora si caricano tutti allaccesso senza richiedere password allavvio, ad esempio:
Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/foo IdentityFile ~/.ssh/bar Host foo HostName foo.com User fooUser IdentityFile ~/.ssh/foo Host bar HostName bar.com User barUser IdentityFile ~/.ssh/bar
Commenti
- Suggerirei
Host *
di seguire regole host specifiche. Vediman ssh_config
per i dettagli.
Risposta
Inoltre, in macOS Sierra e HighSierra (non so delle versioni precedenti), eseguendo ssh-add -A
, lagente caricherà tutte le chiavi le cui passphrase sono memorizzate nel portachiavi … Quindi molto comodo
Risposta
Aggiungi la chiave pubblica in:
.ssh/known_hosts
Pubblico le chiavi di solito sono su:
/home/user/.ssh/id_rsa.pub
Spero che questo aiuti
Commenti
- Penso che significa
authorized_keys
- Comunque, questo ' non funziona se hai più di una chiave!
id_rsa
contiene una password.ssh-add
, ma semplicemente di eseguiressh
direttamente. Dovresti visualizzare una finestra che fungerà da passphrase per la chiave e con una casella di controllo per consentirti di memorizzarla nel tuo portachiavi.