Hoy contesté un correo en debian-user_at_l_dot_d_dot_o sobre una duda común:
Tengo cuenta en 2 máquinas, llamémoslas
host1 y
host2, y bueno, la máquina donde nos encontramos será
localhost. Original, ¿no? Bueno, el punto es que host2 no es accesible desde localhost, ya sea porque se encuentra en una subred, detrás de un firewall, etc... pero sí desde host1. Otro factor, tanto host1 como host2 sólo permiten autenticación por llaves.
- Guardar tu llave, para entrar a host2, en host1 representaría una flaqueza en tu esquema de seguridad, ¿cierto?
- Subir tu llave a host1, para acceder a host2, cada vez que quieras entrar sería una pérdida de tiempo.
Entonces, ¿cómo hacerlo?
ssh-add -t 30 /ruta/a/la/llave/de/host2 ; ssh -t -i /ruta/a/la/llave/de/host1 -A host1 ssh host2Voy a tratar de explicarlo.
ssh-add agrega nuestra identidad, ya sea RSA o DSA (especificada en la ruta), al agente de autenticación. El parámetro
-t establece el tiempo de vida de la identidad. Esto es necesario para la autenticación con
host2.
Después viene el
ssh tradicional, donde
-i indica el archivo de donde se tomará la identidad para la autenticación con
host1. El parámetro
-t es necesario para asignar un pseudo-tty (ya que no contaremos con uno) y el
-A permitirá el reenvío de la conexión del agente de autenticación.
Por último, el comando a ejecutar en
host1:
ssh host2 resulta obvio a estas alturas.
Ojalá les sirva, y como siempre, acepto y espero sugerencias.
Comentarios Recientes