¿Cómo reenviar X a través de dos túneles SSH?

¿Cómo reenviar X a través de dos túneles SSH?

Estoy intentando ejecutar un programa X en la computadora de mi casa desde la computadora de mi trabajo. La configuración básica es esta:

Computadora de trabajo Arch Linux -> enrutador OpenBSD SSH (en casa) -> computadora doméstica Arch Linux (con SSH)

En realidad, nunca he intentado hacer esto y no estoy muy seguro de cómo hacerlo. ¿Cómo haría que esto funcione?

Cuando intento hacer

$(work computer) ssh -Y home-ip
..
$(home router) ssh -Y private-ip

Llego al último túnel "Error en la solicitud de reenvío X11 en el canal 0"

¿Cómo hago esto correctamente?

EDITAR: Olvidé habilitar el reenvío X en el sshd de la computadora de mi casa. Lo he solucionado ahora, pero parece que no sucede nada cuando ejecuto un comando simple como xterm. Simplemente se queda ahí, presumiblemente intentando mostrar la ventana xterm en mi enrutador y no en la computadora de mi trabajo.

Respuesta1

¿Qué tal reenviar un puerto de la computadora de su trabajo al puerto 22 de la computadora de su hogar y luego ssh -Ya ese puerto local?

Por ejemplo,

ssh -L 2222:private-ip:22 router-ip
ssh -Y localhost:2222

Respuesta2

Lo que has hecho debería funcionar, pero necesitas tener el xauthprograma instalado en el enrutador para que pueda crear una clave de seguridad para la pantalla virtual X11 que crea SSH. Lo necesita xauthen cualquier máquina que desee ssh -X, ssh -Yincluso si en realidad no ejecuta ninguna aplicación X allí, sino que simplemente la usa como un paso hacia otro lugar.

Una vez que se haya conectado a la computadora de su hogar, verifique su $DISPLAYvariable. Debería ser algo así como localhost:10. De lo contrario, regrese a su shell en el enrutador y verifique $DISPLAYallí.

información relacionada