Categorías

Calendario del Blog

Diciembre 2024
Dom Lun Mar Mie Jue Vie Sab
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 1 2 3 4

Imagen Aleatoria

Imagen Aleatoria

Comentarios Recientes

Emblemas

Es Válido 0xCAE274D6
Soporta RSS2
Soporta Atom
Energizado por Jaws Project

Reenvío de la identidad del agente de autenticación en ssh.

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 host2

Voy 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.