Abra una aplicación X pasando por muchos aros (SSH, vpn, etc.)

0

Los jugadores:

  • la computadora de mi casa, ejecutando Linux con un servidor X funcionando. (Llámalo HOGAR)
  • un sitio remoto, al que me puedo conectar a través de Internet usando una VPN. (SITIO)
  • una computadora Linux en el sitio remoto, a la cual me puedo conectar ssh -Xy tener clientes X que se muestran en mi servidor local. (MEDIO)
  • una máquina Irix muy antigua (un Onyx) en el sitio remoto, que no tiene servidor SSH (por lo tanto, no puedo ssh -Xhacerlo), solo un ssh cliente . (ÓNIX)

Propósito

Necesito ejecutar una aplicación X11 en la máquina ONYX y ver la GUI en HOME. Creo que me encuentro con xauthproblemas. Tenga en cuenta que he intentado lo obvio: configuré DISPLAY en $ip_address_of_HOME_in_the_SITE_VPN:0, pero el servidor VPN no reenvía los intentos de conexión a sus clientes, probablemente por razones de seguridad.

Hasta aquí

La situación actual es:

  • ☑ INICIO se conecta al SITIO
  • ☑ Se inicia un vncserver en MEDIO: 7
  • Nc vncviewer en HOME se conecta a vncserver en MIDDLE
  • ☑ ONYX inicia una sesión ssh de reenvío a MEDIO:
    ssh -TfN -L 6007:127.0.0.1:6007 MIDDLE
  • DISPLAY=localhost:7 xclienten ONYX falla con
    Xlib: el servidor rechaza la conexión a "127.0.0.1:7.0"

Sé que el reenvío (6007: 127.0.0.1: 6007) tiene éxito.

Un intento anterior fue:

  • ☑ INICIO se conecta al SITIO
  • ☑ INICIO se conecta a MEDIO:
    ssh -X MIDDLE(xclock se muestra en INICIO, PANTALLA es 127.0.0.1:10)
  • ☑ ONYX inicia un túnel SSH a MEDIO: ssh -TfN -L 6010:127.0.0.1:6010 MIDDLE
  • DISPLAY=127.0.0.1:10 xclientfalla con la
    conexión X a 127.0.0.1:10.0 rota (muerte explícita o apagado del servidor).
    mientras aparece un error en la sesión MEDIA: se
    rechazó la conexión X11 debido a una autenticación incorrecta.

Desesperación

¿Cómo puedo lograr mi propósito?

tzot
fuente
Intenté ejecutar xauthen ONYX, entonces generate 127.0.0.1:10 . trusted(en el segundo caso anterior), pero tengo el mismo error dual (uno en ONYX, uno en el MEDIO).
tzot

Respuestas:

0

XDMCP . Configure ONYX para aceptar conexiones XDMCP, luego abra un túnel SSH de HOME a MIDDLE. Conéctese Xnesto Xephyral extremo local del túnel SSH e inicie sesión en ONYX.

Ignacio Vazquez-Abrams
fuente
Intentaré leer más sobre Xnest y Xephyr, porque no tengo experiencia con estos. Sin embargo, no estoy seguro de cómo se debe configurar el túnel de INICIO a MEDIO. Además, si configuro ONYX para aceptar conexiones XDMCP, ¿eso no significaría que en la consola gráfica ONYX puedo iniciar sesión en otros sistemas (es decir, lo contrario de lo que quiero)?
tzot
Honestamente, no recuerdo todos los detalles. Ha pasado mucho tiempo desde que tuve que lidiar con XDMCP.
Ignacio Vazquez-Abrams
0

Logré llegar a una solución usando túneles SSH rectos (sin opción -X), además de algunos xauthajustes:

  • HOME se conecta al SITIO, telnet a ONYX
  • HOME ssh tunnel to MIDDLE:
    ssh -TfN -R 6010:127.0.0.1:6000 MIDDLE
  • Túnel ssh ONYX a MEDIO:
    ssh -TfN -L 6010:127.0.0.1:6010 MIDDLE
  • INICIO xauth nextract - $DISPLAYy copie la salida
  • ONYX xauth nmerge -y pega la salida anterior
  • ONYX DISPLAY=127.0.0.1:10 xclientexitoso :)
tzot
fuente
-1

No puede usar la PANTALLA localhost (127.0.0.1) para un cliente X que se ejecuta en el cuadro ONYX para mostrar en el cuadro INICIO. Necesita la dirección IP de HOME o el nombre de host.

mpez0
fuente
-1: No te diste cuenta de los túneles SSH, me temo. Además, ya he intentado configurar DISPLAY en IP_OF_HOME_THRU_VPN_ON_REMOTE_SITE: 0, pero el servidor VPN no reenvía las conexiones a los clientes VPN, solo desde .
tzot
En realidad, noté los túneles. No vi ninguna razón para su necesidad. Independientemente, localhost como la variable DISPLAY para un host sin un servidor X en ejecución es incorrecto.
mpez0
localhosten la variable de entorno DISPLAY implica una conexión TCP / IP; ningún nombre de host implica un socket UNIX local. Dado que hay muchas formas de reenviar sockets TCP / IP a máquinas remotas (por ejemplo, con túneles ssh, que funcionaron aquí; vea mi respuesta), ¿qué quiere decir con su última parte de su comentario, "localhost como la variable DISPLAY para un El host sin un servidor X en ejecución es incorrecto. Debido a que la realidad refuta lo que dices, es incorrecto en sí mismo.
tzot