2012-09-04 10 views
32

Distribuisco manualmente i siti Web tramite SSH, gestisco il codice sorgente in github/bitbucket. Per ogni nuovo sito sto generando attualmente una nuova coppia di chiavi sul server e aggiungendola a github/bitbucket, in modo che possa tirare fuori le occasioni dal server.Come inoltrare la coppia di chiavi locale in una sessione SSH?

mi sono imbattuto in una caratteristica a Capistrano per utilizzare la coppia di chiavi della macchina locale per tirare gli aggiornamenti al server, che è ssh_options[:forward_agent] = true

Come posso fare qualcosa di simile e in avanti la coppia di chiavi della mia macchina locale al server Sono SSH -in modo che io possa evitare di aggiungere chiavi in ​​github/bitbucket per ogni nuovo sito.

Grazie.

risposta

45

Questa si è rivelata molto semplice, completa guida è qui Using SSH Forwarding

In sostanza, è necessario creare un file ~/.ssh/config, se non esiste.

Quindi, aggiungere i padroni di casa (o nome di dominio o un indirizzo IP nel file e impostare ForwardAgent yes)

codice di esempio:

Host example.com 
    ForwardAgent yes 

rende la vita molto più facile SSH.

+5

Grande articolo collegato nella risposta; per riassumere gli utenti OSX potrebbe essere necessario 'sudo vim/etc/ssh_config' e rimuovere la disabilitazione del carattere jolly host' ForwardAgent no' e quindi 'ssh-add ~/.ssh/your_key' per consentire all'agente locale di inoltrare tale identità. – cfeduke

+0

Aggiunta di 'echo 'Host example.com \ n ForwardAgent si' >> ~/.ssh/config' non funzionerà se ci si connette a ssh usando ip' ssh node-1.example.com', quindi provare a saltare con ' ssh $ {utente} @ $ (nomehost -s) 'usando l'agente in avanti. Richiederà la tua password. – BigDong

+5

sul mio OSX El Capitan Non ho avuto bisogno di gironzolare con/etc/ssh_config, ma ho dovuto eseguire 'ssh-add' prima che l'inoltro potesse funzionare per me. – the0ther

0

Il file di configurazione è molto utile ma il trucco per l'inoltro dell'agente è il comando ssh-add. Sembra che questo debba essere attivato prima di qualsiasi connessione remota o dopo il riavvio del computer. Per aggiungere in modo permanente la chiave di provare la seguente soluzione dal daminetreg utente: Add private key permanently with ssh-add on Ubuntu

10
  1. Crea ~/.ssh/config
  2. Riempire con (indirizzo host è l'indirizzo dell'host che si desidera consentire creds da trasmettere al):

    Host [host address] 
        ForwardAgent yes 
    
  3. Se non è stato già eseguito ssh-agent, eseguirlo:

    ssh-agent 
    
  4. Prendere l'output da quel comando e incollarlo nel terminale. Questo imposterà le variabili d'ambiente che devono essere impostate affinché l'inoltro dell'agente funzioni.Opzionalmente, è possibile sostituire questo e fase 3 con:

    eval "$(ssh-agent)" 
    
  5. Aggiungere la chiave che si desidera trasmettere al agente ssh:

    ssh-add [path to key if there is one]/[key_name].pem 
    
  6. Accedere al host remoto:

    ssh -A [user]@[hostname] 
    
  7. Da qui, se si accede a un altro host che accetta quella chiave, funzionerà solo:

    ssh [user]@[hostname] 
    
Problemi correlati