Reenvío de puertos ssh a través de pseudo terminal

Reenvío de puertos ssh a través de pseudo terminal

He aquí una situación:

Hago todo mi trabajo en una Mac.

  1. Hay un determinado servidor Linux 'servidor01'que proporciona acceso a otro servidor Linux'servidor02'a través de un pseudo terminal

    Entonces, para entrar en 'servidor02', hago esto desde mi mac:

    ssh -t server01 'inline server02'
    
  2. Luego me pide contraseña para 'servidor01'; Lo entro y eso me registra en 'servidor02'. Ahora estoy en el 'servidor02' Terminal.

  3. De 'servidor02'Puedo acceder a la base de datos MySQL que se encuentra en 'servidor03' usando el siguiente comando mysql:

    mysql --host=server03 --port=4201 --user=myuser --password=mypass mydb
    
  4. Ni 'servidor01' ni 'servidor02'ni mi Mac tiene acceso SSH a 'servidor03'

Ahora quiero acceder a mysql en 'servidor03' desde mi mac directamente a través de algún tipo de reenvío de puerto. Entonces, si escribo el siguiente comando en mi terminal Mac, debería conectarme a la base de datos MySQL en 'servidor03':

mysql --host=localhost --port=4201 --user=myuser --password=mypass mydb

¿Hay una manera de hacer eso? Cualquier ayuda es muy apreciada.

Respuesta1

Si puedes enviar ssh al servidor02 desde el servidor01, puedes intentarlo.

ssh -t -L server02:4201 server01 'ssh -N -L server03:4201 server02' 

conectará en cadena

localhost:4201 -> servidor02:4201 -> servidor03:4201

solo se conecta localmente al puerto4201en la mac

Utilice mejor la autenticación de claves y el agente ssh para evitar escribir contraseñas.

información relacionada