2012-09-04 10 views
32

Implemento manualmente sitios web a través de SSH, administro el código fuente en github/bitbucket. Para cada sitio nuevo, actualmente estoy generando un nuevo par de llaves en el servidor y lo estoy agregando a github/bitbucket, para poder aprovechar las oportunidades del servidor.¿Cómo reenviar el par de claves local en una sesión SSH?

me encontré con una característica en Capistrano utilizar par de claves de la máquina local para tirar de cambios a servidor, que es ssh_options[:forward_agent] = true

¿Cómo puedo hacer algo como esto y reenviar par de llaves de mi máquina local al servidor estoy SSH -ing into, por lo que puedo evitar agregar claves en github/bitbucket para cada sitio nuevo.

Gracias.

Respuesta

45

Esto resultó ser muy simple, guía completa está aquí Using SSH Forwarding

En esencia, es necesario crear un archivo ~/.ssh/config, si no existe.

A continuación, añadir los anfitriones (ya sea de nombre de dominio o la dirección IP en el archivo y establecer ForwardAgent yes)

Código de ejemplo:

Host example.com 
    ForwardAgent yes 

hace la vida mucho más fácil de SSH.

+5

Gran artículo vinculado en la respuesta; para resumir para los usuarios de OSX, es posible que deba 'sudo vim/etc/ssh_config' y eliminar el comodín del host' ForwardAgent no' deshabilitado y luego 'ssh-add ~/.ssh/your_key' para permitir que el agente local reenvíe esa identidad. – cfeduke

+0

Agregar 'echo' Host example.com \ n ForwardAgent yes '>> ~/.ssh/config' no funcionará si se conecta a ssh usando ip pública 'ssh node-1.example.com' y luego intenta saltar con' ssh $ {user} @ $ (nombre de host -s) 'utilizando agente reenviado. Le pedirá su contraseña. – BigDong

+5

en mi OSX El Capitan No necesité perder el tiempo con/etc/ssh_config, pero sí tuve que ejecutar 'ssh-add' antes de que el reenvío me funcionara. – the0ther

0

El archivo de configuración es muy útil, pero el truco para el reenvío del agente es el comando ssh-add. Parece que esto debe activarse inicialmente antes de cualquier conexión remota o después de reiniciar la computadora. Para añadir de forma permanente la tecla tratar la siguiente solución de la daminetreg usuario: Add private key permanently with ssh-add on Ubuntu

10
  1. Crear ~/.ssh/config
  2. Rellenar con (dirección de host es la dirección del host desea permitir creds que se remitirá a):

    Host [host address] 
        ForwardAgent yes 
    
  3. Si no ha ejecutado ssh-agent, ejecutarlo:

    ssh-agent 
    
  4. Tome la salida de ese comando y péguelo en el terminal. Esto configurará las variables de entorno que se deben establecer para que funcione el reenvío de agente.Opcionalmente, puede reemplazar esto y el paso 3 con:

    eval "$(ssh-agent)" 
    
  5. Añadir la clave que desea remitido al agente ssh:

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

    ssh -A [user]@[hostname] 
    
  7. Desde aquí, si inicia sesión en otro host que acepta esa clave, simplemente funcionará:

    ssh [user]@[hostname] 
    
Cuestiones relacionadas