¿Cómo funciona la opción -Y de SSH exactamente (internamente)?

En realidad no he mirado el código fuente de OpenSSH, pero según lo que veo en la vida real y sé sobre el protocolo X, es algo así:

  1. ssh en el lado local se conecta a sshd en el lado remoto, realiza la autenticación del usuario
  2. Debido a que lo ejecutó con el indicador -Y (o agregó ForwardX11Trusted a su configuración SSH local), ssh le dice a sshd que reenvíe todo el tráfico X11 desde su final
  3. sshd abre un socket TCP de escucha en el puerto 6010, o el puerto más cercano por encima del cual ningún otro proceso está escuchando (llamemos a este puerto P )
  4. sshd inicia su shell en el extremo remoto, configurando su variable de entorno DISPLAY en [code] localhost: Q .0 [/ code], donde Q = P – 6000. sshd ahora está actuando como un proxy de protocolo X , y cualquier programa X se inició bajo este shell se engañará para conectarse con él, creyendo que es un servidor X.
  5. Mientras tanto, ssh abre una conexión al servidor X local, según lo especificado por la variable de entorno DISPLAY local.
  6. De ahora en adelante, todo el tráfico del protocolo X generado por los programas X en el extremo remoto se canaliza a través de su conexión SSH, luego se envía a través del ssh local al servidor X local. Por el contrario, todos los eventos X para las ventanas de los programas X (clics del mouse, pulsaciones de teclas, etc.) viajan de regreso a los programas a través del mismo túnel.