[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Pasarela SSH



Un saludo a la lista:

Por motivos un poco prolijos de explicar quiero acceder a un servidor
SSH a través de otro servidor SSH de la manera más transparente posible:

Cliente -----> Servidor1 ----> Servidor2

Por supuesto se qué existen túneles para poder hacer esto, pero mi
intención es que el usuario notase lo menos posible.

Mi idea inicial, aunque creo que es imposible de llevar a cabo es la
siguiente:

1. Asigno dos nombres a la ip del Servidor1 (pongamos que servidor1.com
   y servidor2.com).

2. Cuando quiero acceder por SSH al servidor1 hago lo siguiente:

   $ ssh usuario1@servidor1.com

3. Cuando quiero acceder por SSH al servidor2 hago lo siguiente:

   $ ssh usuario2@servidor2.com

He de aclarar que en el servidor 1 existen unos usuarios y en el
servidor 2 otros usuarios independientes entre sí, así que se supone que
usuario2 es un usuario que existe en Servidor2, pero no en Servidor1. Sé
que esto es medianamente abordable con la directiva "Match" ya que puedo
poner como condición el nombre de Host y forzar luego el comando de
conexión ssh hacia Servidor2. El problema de todo esto está en que el
servidor SSH de Servidor1, me exige que me autentifique y usuario2 no
tiene por qué existir. Creo que tampoco puedo abordar esto intentando
manipular la autentificación con PAM, porque en pam soy incapaz de saber
cómo ha sido el acceso ssh, si a servidor1.com o a servidor2.com.

Por esta vía, que es la que realmente me parece más interesante, no sé
seguir y la veo totalmente irresoluble.

Se me ha ocurrido otra solución, aunque me gusta bastante menos porque
no es tan transparente. Consiste en crear un usuario llamado "pasarela"
que permtia la autentificación clave de manera que nos ea necesaria
contraseña. En este caso el acceso al segundo servidor sería así:


$ ssh pasarela@usuario2.servidor1.com

de manera que en el nombre de la máquina estaría incluido el nombre de
usuario que se quiere usar en el Servidor2. A partir de ello, el script
que arrancara ForceCommand se encargaría de crear el comando ssh que
conectara con el segundo servidor.

Lo guarro de esta segunda conexión, a parte de que el comando ya no es
transparente, es que además tendría que dar a todos los usuarios que
usaran esto, una clave privada cuya clave pública estuviera en el
authorized_keys de pasarela.

¿Alguien tiene alguna idea para solucionar los problemas del primer
método o se le ocurre algún método que sea menos engorroso que este
segundo?

-- 
   Como todo al fin se sabe
yo he sabido la verdad.
                  --- Muñoz Seca ---


Reply to: