Tengo 3 máquinas que están conectadas en cadena, A,B,C.
A-->B-->C
A es mi máquina, B es el servidor y C es otra máquina con algunos servicios y un servidor web. Debido a algunos problemas, necesito acceso desde A al servidor web en C (puerto 80), puedo usar ssh para iniciar sesión de A a B y luego de B a C, pero la consola en este momento es demasiado pequeña. Necesito un navegador web y usar ssh con la opción -X
no funcionó (algunos problemas con dbus al iniciar Firefox).
Realizo el reenvío de puertos en B usando el comando clásico para reenviar 22 puertos para ssh:
ssh -L 2222:localhostB:22 user@ipC
pero usar lo mismo para reenviar el puerto 80 no funcionó:
ssh -L 8888:localhostB:80 user@ipC
Sé que hay algún otro reenvío para que funcione, pero no entendí cómo ni qué.
Necesito algo como esto:
A --> B (frd from B:8888 to C:80) --> C (port 80 web server)
Por lo tanto, cuando escriba ipB:8888, se me reenviará a C:80.
Se agradecerá cualquier ayuda para explicar lo que se debe hacer o scripts con comandos. Noté en un blog que el ssh -L
reenvío debe hacerse dos veces, pero no entendí por qué.
Respuesta1
Estás en el camino correcto.
En un:
ssh -L 8888:ipC:80 user@ipB -N
Hará que el servidor web en C sea accesible a través de localhost:8888 en A
Un poco más de detalles a petición de los OP:
Por su pregunta, asumí que desea acceder al servidor web de C en A (supongo que tiene un entorno GUI en A, con un navegador web).
No puede acceder a C directamente (por cualquier motivo), pero puede acceder a B, que a su vez puede acceder a C. Entonces creamos un túnel entre A y B, pidiéndole a B que conecte su extremo del túnel al servidor web en C.