Sería genial poder x hacer un túnel sobre ssh; ¿Por qué uno tiene que usar XQuartz (etc) en su lugar?
Sería genial poder x hacer un túnel sobre ssh; ¿Por qué uno tiene que usar XQuartz (etc) en su lugar?
La respuesta simple es: el terminal es un emulador de terminal, no es un servidor X11. Existe para proporcionar un punto final de comunicación basado en texto entre su Mac y otras máquinas.
Terminal no es más un servidor X11 que gnome-terminal en Linux o cmd en Windows. Es decir, no es un servidor X11 en absoluto. Necesitas estar ejecutando un servidor X11 en tu máquina local para poder hacer que las aplicaciones X11 gráficas y tunelizadas dibujen sus interfaces de usuario en tu Mac. En realidad, esto no es diferente para Mac de algo como Linux, es solo que Linux, de manera predeterminada, siempre está ejecutando un servidor X11 para dibujar su escritorio, por lo que se maneja con un poco más de gracia que en Mac. Solo tiene que abrir los permisos de su servidor X11 y el túnel ssh y el reenvío de X11 en un escritorio de Linux parecen funcionar.
El servidor XQuartz que ejecuta en OS X simplemente le proporciona el servidor X11 faltante que necesita en su sesión de OS X para habilitar el dibujo Los comandos de IU reenviados en su escritorio OS X. Esto no es algo que una aplicación de Terminal Server jamás, o nunca debería, implementar. No es parte de ser una Terminal. Es una cosa completamente separada.
También quiero abordar algo que dijo en su pregunta:
Sería genial poder x hacer un túnel sobre ssh
Supongo que te refieres a que "sería genial hacer el reenvío X11 desde una sesión ssh iniciada en Terminal.app a mi servidor XQuartz en ejecución". ¡Puedes hacer esto!
Cuando use ssh en Terminal.app, simplemente incluya la opción -X
para habilitar el reenvío de X y su Mac iniciará XQuartz automáticamente. No es necesario utilizar la aplicación de terminal en XQuartz, lo cual es bastante horrible.
También puedes editar ~/.ssh/config
y agregar:
ForwardX11 yes
a ese archivo para habilitar el reenvío X de forma predeterminada para todas las sesiones ssh. Incluso puede iniciar programas X en la máquina remota en segundo plano, de este modo:
ssh username@remoteserver -f -X xeyes
Eso funciona desde la Terminal.