ssh -A non abilita correttamente l'inoltro della connessione dell'agente di autenticazione


22

Adoro ssh -A, il che mi consente di utilizzare la mia chiave ssh locale quando stabilisco una connessione da un server remoto. Ad esempio, io ssh -A host1.example.come poi da lì posso ssh host2.example.com(o usare git) e usa la mia chiave ssh dalla macchina originale, che in questo caso dovrebbe essere il mio mac. Anche se questo ha sempre funzionato per me su Debian / Ubuntu, non funziona sul mio nuovo mac (Lion).

Cosa mi sto perdendo qui? Come configuro ssh per funzionare correttamente con -A? Ho bisogno di un SSH che non sia quello standard di MacOS?

Risposte:


33

In realtà, la risposta molto semplice è che devi correre

ssh-add

e poi tutto funziona.

Fondamentalmente, macOS ha già impostato ssh-agent per te, ma dopo ogni riavvio devi aggiungere le tue chiavi. ssh-add fornisce l'accesso ssh-agent alle tue chiavi per l'attuale ciclo di avvio. Dovrai inserire la password per la tua chiave privata se ne hai creata una.


Ciò ha risolto il mio ultimo problema di inoltro di ssh dopo l'aggiornamento a macOS (dopo 5 anni, ancora una risposta utile, grazie @rfay)
23

Questo funziona, ma alcune spiegazioni del perché sarebbe utile / aiutare le persone a ricordare questo comando.
Adam Parkin,

2
@AdamParkin ha aggiunto un altro paragrafo che spiega.
rfay,

1

Il concetto alla base ssh -Asono agenti SSH. Funzionano in background e attraverso l'uso di variabili d'ambiente l'agente può essere localizzato e usato automaticamente per l'autenticazione quando si accede ad altre macchine usando ssh. Dai un'occhiata alla manpage di ssh-agent per maggiori dettagli.

Con Mac OS X, l'agente ssh dovrebbe essere avviato su richiesta.

Per ulteriori informazioni, vedere:


1

A partire da OS X 10.8 devi farlo una volta:

sudo touch /var/db/useLS

E aggiungi questo come parte del tuo ~/.bash_profile:

if [ -f ~/.ssh/id_rsa ]; then
    ssh-add -K ~/.ssh/id_rsa 2>/dev/null
fi

Nota: questa ricetta è parte dei miei script beduini .


Hm, ho appena provato questo; quindi l'agente si avvia, ma devi ancora ssh-add per far funzionare qualsiasi cosa. Quindi solo ssh-add è ancora la risposta, per quanto ho capito. Immagino che dovrei aggiungerlo al mio .bash_profile.
rfay

lol, cosa succede se la mia chiave privata necessita di una passphrase?
Jeffrey04,
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.