Come posso aggiungere in modo permanente la mia chiave privata SSH al portachiavi in modo che sia automaticamente disponibile per ssh?

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

  • Può dici qualcosa in più su quando ti viene visualizzata la richiesta della password? Lo chiedo perché ho una chiave ssh per un server remoto, che ti assicuro non è la stessa della password di accesso del mio Mac o altro, e non ho ' dovuto entrare nel password per la chiave ssh per anni . Posso semplicemente aprire un terminale, digitare " ssh < server > " e io ' sono lì. Penso di aver impostato questa chiave per la prima volta su OSX 10.5. id_dsa, ma non ' penso che dovrebbe importare.
  • La mia chiave id_rsa contiene una password.
  • Ho anche il problema di risolverlo così tanto tempo fa che non riesco ' a ricordare esattamente cosa ho fatto. Ma penso lidea sia di non eseguire ssh-add, ma semplicemente di eseguire ssh 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.
  • @Sorin – anche la mia! Ho dovuto inserirlo una volta, molto tempo fa, e da allora il Mac me lo ha salvato. Si spera che i consigli di Harald ' siano daiuto.
  • Intendi la password del portachiavi (ovvero la tua password di accesso) o la chiave ' s passphrase? Se ' è questultimo, le tue passphrase sono sicuramente memorizzate nel portachiavi? Puoi verificarlo aprendo Accesso Portachiavi e cercandolo nel portachiavi di accesso.

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:

  1. Assicurati di aver completato il passaggio 1 sopra per memorizzare la chiave nel portachiavi.

  2. Se non lhai già fatto, crea un file ~/.ssh/config. In altre parole, nella directory .ssh della tua directory home, crea un file chiamato config.

  3. 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 riga IdentityFile per ciascuna di esse. Ad esempio, ho una riga aggiuntiva che legge IdentityFile ~/.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.

  4. 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 quello K 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. Vedi man 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!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *