¿Cuál es la diferencia entre 'ssh -Y' (reenvío X11 confiable) y 'ssh -X' (reenvío X11 no confiable)?

101

¿Cuál es la diferencia entre ssh -Y (reenvío X11 confiable) y ssh -X (reenvío X11 no confiable)? Por lo que he entendido, tiene algo que ver con la seguridad, pero no entendí la diferencia y cuándo utilizarla.

    
pregunta Martin Ueding 16.04.2011 - 21:42

4 respuestas

76

Ambas opciones tienen algo que ver con el reenvío X11. Esto significa que si habilita esto, puede usar un cliente gráfico a través de su sesión SSH (es decir, use Firefox u otra cosa).

Si usa ssh -X remotemachine , la máquina remota se trata como un cliente que no es de confianza. Entonces su cliente local envía un comando a la máquina remota y recibe la salida gráfica. Si su comando infringe algunas configuraciones de seguridad, recibirá un error en su lugar.

Pero si usa ssh -Y remotemachine , la máquina remota se trata como cliente de confianza. Esta última opción puede abrir problemas de seguridad. Porque otro cliente gráfico (X11) podría olfatear datos de la máquina remota (hacer capturas de pantalla, hacer capturas de pantalla y otras cosas desagradables) e incluso es posible alterar esos datos.

Si quiere saber más sobre estas cosas, le sugiero que lea la página de Xsecurity o la especificación de extensión de seguridad X . Además, puedes verificar las opciones ForwardX11 y ForwardX11Trusted en tu /etc/ssh/ssh_config .

    
respondido por el qbi 16.04.2011 - 22:38
20

No use ninguno cuando no necesite ejecutar programas X11 de forma remota; use -X cuando lo haga; e hipotéticamente usa -Y si un programa X11 que te interesa funciona mejor con -Y que con -X. Pero actualmente (Ubuntu 15.10), -X es idéntico a -Y, a menos que edites ssh_config para decir ForwardX11Trusted no . -X fue originalmente diseñado para habilitar la extensión X Security de la década de 1990, pero eso es antiguo e inflexible, y bloquea algunos programas, por lo que se ignora por defecto.

Tanto ssh -Y como -X le permiten ejecutar un programa X11 en una máquina remota, con sus ventanas que aparecen en el monitor X local. El problema es lo que el programa puede hacer a las ventanas de otros programas y al servidor X en sí.

local$ ssh -X remote
remote$ xlogo
# Runs xlogo on remote, but the logo pops up on the local screen.

Trusted El reenvío de X11 está habilitado por -Y . Este es el comportamiento histórico. Un programa con acceso a la pantalla tiene acceso de confianza a la totalidad . Puede captura de pantalla, registro de teclas e insertar entrada en todas las ventanas de otros programas. Y puede usar todas las extensiones de servidor X, incluidas aquellas como gráficos acelerados, que son exposiciones de seguridad. Lo cual es bueno para funcionar sin problemas, pero es malo para la seguridad. Confías en que los programas remotos sean tan seguros como tus programas locales.

No confiable El reenvío de X11 intenta restringir los programas remotos para que accedan solo a sus propias ventanas, y para usar solo aquellas partes de X que son relativamente seguras. Lo cual suena bien, pero actualmente no funciona bien en la práctica.

El significado de -X actualmente depende de tu configuración de ssh.

En Ubuntu 14.04 LTS, a menos que edite su ssh_config , no hay diferencia entre -X y -Y . "[B] porque demasiados programas actualmente se bloquean en el modo [no confiable]".

ubuntu1404$ man ssh
...
 -X      Enables X11 forwarding.  This can also be specified on a per-host
         basis in a configuration file.
         ...
         (Debian-specific: X11 forwarding is not subjected to X11 SECURITY
         extension restrictions by default, because too many programs cur‐
         rently crash in this mode.  Set the ForwardX11Trusted option to
         “no” to restore the upstream behavior.  This may change in
         future depending on client-side improvements.)

ubuntu1404$ grep ForwardX11Trusted /etc/ssh/ssh_config
#   ForwardX11Trusted yes

Si ForwardX11Trusted no , entonces -X permite el reenvío no confiable . De lo contrario, -X se trata igual que -Y , confiando en que los programas remotos con acceso a pantalla son amigables.

    
respondido por el Mitchell 30.03.2016 - 18:08
1

Sí. -Y es para confiable X11 reenvío, mientras que -X es para no confiable X11 reenvío. El reenvío X11 solo le permite usar aplicaciones X11 (es decir, gráficas) en una sesión SSH.

No estoy seguro de cuál es la diferencia significativa entre conexiones X11 fiables y no confiables, pero estoy seguro de que tiene que ver con la configuración del lado del servidor (es decir, ssh-config, sshd-config, etc.). Verifique con su servidor o administrador de red qué bandera usar.

    
respondido por el Tyler K. 16.04.2011 - 22:00
1

La opción -X habilita el reenvío X11:

-X   Enables X11 forwarding.  This can also be specified on a per-host
     basis in a configuration file.

     X11 forwarding should be enabled with caution.  Users with the
     ability to bypass file permissions on the remote host (for the
     user's X authorization database) can access the local X11 display
     through the forwarded connection.  An attacker may then be able
     to perform activities such as keystroke monitoring.

     For this reason, X11 forwarding is subjected to X11 SECURITY
     extension restrictions by default.  Please refer to the ssh -Y
     option and the ForwardX11Trusted directive in ssh_config(5) for
     more information.

La opción -Y , correspondiente a la directiva ForwardX11Trusted en ssh_config (5), es aún menos segura porque elimina los controles de extensión X11 SECURITY.

-Y      Enables trusted X11 forwarding.  Trusted X11 forwardings are not
        subjected to the X11 SECURITY extension controls.

Es más seguro usar -x

-x   Disables X11 forwarding.
    
respondido por el Ortomala Lokni 10.01.2016 - 02:57

Lea otras preguntas en las etiquetas