it-swarm-es.tech

Diferencias entre VNC y ssh -X

¿Por qué usaría VNC (o, para el caso, NX) en lugar de simplemente usar ssh -X (-Y). Leí que VNC usa menos ancho de banda, pero ¿hay alguna otra diferencia/ventaja con la herramienta respectiva?

29
The Silent Boatman

Además de los problemas de ancho de banda y latencia (que pueden variar un poco), las grandes diferencias son la funcionalidad que proporciona.

VNC exporta una sesión completa, escritorio y todo, mientras que ssh ejecutará un solo programa y mostrará sus ventanas en su estación de trabajo.

El servidor VNC exporta una sesión que sobrevive incluso cuando desconecta su pantalla, y puede volver a conectarse más tarde con todas las ventanas abiertas, etc. Esto no es posible con un túnel X ssh, ya que cuando su servidor X muere, las ventanas desaparecen .

30
dkagedal

ssh -X redirige los comandos X11 a su servidor X local. Entonces, es como si estuviera ejecutando el programa localmente, cuando realmente se está ejecutando en la computadora en el otro extremo. Es muy lento porque usa una gran cantidad de ancho de banda. (De esto es de lo que habla la gente cuando dicen que X11 es "red transparente").

En cambio, VNC y otras aplicaciones de escritorio remotas permiten que la otra computadora procese todos los dibujos gráficos, etc. y capture, en esencia, una captura de pantalla y la envíe de vuelta a su computadora. Puede parecer mucho más rápido, porque se requiere mucha menos información para mostrar todo. Sin embargo, también envía todo el escritorio, en lugar de una sola aplicación.

No recomiendo usar ssh -X a través de Internet por una simple razón: usará todo su ancho de banda disponible. Es bastante útil en una LAN, en mi opinión, por lo que si solo necesita una aplicación y no quiere tener que ejecutar un escritorio completo, esta es una buena manera de hacerlo. De lo contrario, solo use VNC.

9
greyfade

VNC compartirá un escritorio completo desde un sistema remoto. Requiere un escritorio completo en el sistema remoto.

ssh -X le permite ejecutar una sola aplicación X desde un servidor remoto. El sistema remoto no necesita ejecutar un escritorio completo y, a menudo, solo necesita instalar un puñado de paquetes en el sistema remoto.

ssh -X puede ser útil al instalar paquetes de software complejos a través de una conexión remota. Algunos productos de software pueden usar un instalador de GUI (Oracle Database, etc.). No quiero instalar un escritorio Gnome completo en mi servidor remoto. Por lo tanto, instala uno o dos paquetes X11 (¿Xauth?) En el servidor remoto y permite que el DBA ejecute el instalador de Oracle de forma remota utilizando algo simple como 'ssh -X/media/cdrom/Oracle-installer'.

4
Stefan Lasiewski

También hay una ventaja de seguridad cuando se usa VNC o NX (X2Go). Una aplicación maliciosa no puede tomar capturas de pantalla o usar un registrador de teclas para registrar las claves de su escritorio real, mientras que es posible usar SSH con reenvío X11 incluso si la aplicación maliciosa se ejecuta en segundo plano.

Si usa SSH -X (o -Y), debe confiar en la aplicación (por ejemplo, la aplicación de código abierto que proviene de un paquete de distribución oficial de Linux) o evitar hacer un trabajo sensible mientras se ejecuta.

Pude verificar esto con estas herramientas multiplataforma y de código abierto (probadas en un contenedor LXC):

https://github.com/lxqt/screengrab

https://github.com/GiacomoLaw/Keylogger

1
baptx