He aquí una situación:
Hago todo mi trabajo en una Mac.
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'
Luego me pide contraseña para 'servidor01'; Lo entro y eso me registra en 'servidor02'. Ahora estoy en el 'servidor02' Terminal.
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
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.