Articulo de referencia

Mosh (software)

Mosh "},"screenshot":{"wt":"[[File:Mosh demo screenshot.png|326px|Screenshot of Mosh (software), showing warning of intermittent network connection and local echoing feature]]"}...

En informática , Mosh (shell móvil) es una herramienta que se utiliza para conectarse desde un ordenador cliente a un servidor a través de Internet, para ejecutar una terminal remota . [ 2 ] Mosh es similar [ 3 ] a SSH , con características adicionales destinadas a mejorar la usabilidad para usuarios móviles . Las principales características son:

  • Mosh mantiene su sesión incluso cuando " roam " (cuando el punto final del cliente cambia a diferentes direcciones IP ), por ejemplo, al moverse a una red Wi-Fi diferente o al cambiar de Wi-Fi a 3G . [ 4 ]
  • Mosh mantiene la sesión de terminal (no una "conexión" en el sentido TCP, ya que Mosh usa UDP ) incluso cuando un usuario pierde su conexión a Internet o pone su cliente en modo de suspensión . En comparación, SSH puede perder su conexión en tales casos debido a que TCP agota el tiempo de espera. [ 5 ]
  • Un cliente Mosh intenta responder a los eventos del teclado (escribir, borrar caracteres con la deletetecla, etc.) sin esperar a que se produzca latencia en la red . Utiliza un sistema adaptativo que predice si la aplicación que se ejecuta en el servidor decidirá replicar las pulsaciones o borrados del usuario. [ 6 ] [ 7 ]

Los principales inconvenientes de Mosh son los requisitos previos adicionales para el servidor, la falta de algunas características especiales de SSH (como el reenvío de conexiones) y la falta de un cliente nativo para Windows . [ 2 ] Una alternativa para servidores Linux (que aún requieren instalación en el servidor) es usar GNU Screen sobre una conexión SSH estándar.

Diseño

Mosh funciona en una capa diferente a la de SSH. Mientras que SSH transmite un flujo de bytes en cada dirección (del servidor al cliente o del cliente al servidor) mediante TCP , Mosh ejecuta un emulador de terminal en el servidor para determinar qué debe mostrarse en la pantalla. [ 2 ] El servidor luego transmite esta pantalla al cliente a una velocidad de fotogramas variable, dependiendo de la velocidad de la red. [ 8 ] Esto permite a Mosh ahorrar tráfico de red en conexiones lentas o intermitentes.

Plataformas compatibles

Mosh está disponible para la mayoría de las distribuciones de Linux , macOS , FreeBSD , NetBSD y OpenBSD , Android , Solaris , Cygwin y como aplicación de Chrome . [ 2 ] El programa Termius para iOS incluye una implementación independiente del protocolo Mosh. [ 9 ]

Actuación

Itinerancia

Mosh se basa en el Protocolo de Sincronización de Estado (SSP), [ 10 ] que admite el roaming de un solo paquete. [ 11 ] Después de que el cliente cambia a una nueva dirección IP, un solo paquete que llega correctamente al servidor es suficiente para "roamear" la conexión. El cliente no necesita saber que ha roamado. (El cliente puede estar en una red con traducción de direcciones de red (NAT) cuando el enrutador NAT roam). [ 8 ]

Pérdida de paquetes

En el artículo de investigación de Mosh, [ 8 ] los creadores probaron SSP en un enlace con una pérdida de paquetes del 29% y encontraron que SSP redujo el tiempo de respuesta promedio en un factor de 50 (de 16,8 segundos a 0,33 segundos) en comparación con SSH, que utiliza TCP . Otro estudio, realizado por estudiantes de la Universidad de Stanford , encontró que SSP redujo el tiempo de respuesta promedio en un factor de 30 (de 5,9 segundos a 0,19 segundos). [ 12 ]

Eco local

Según los desarrolladores de Mosh, se descubrió que el programa podía predecir y mostrar inmediatamente el 70 % de las pulsaciones de teclas del usuario, [ 2 ] [ 8 ] reduciendo el tiempo medio de respuesta a una pulsación de tecla a menos de 5 milisegundos (enmascarando la latencia de la red). Otro estudio, realizado por estudiantes de la Universidad de Stanford, descubrió que Mosh podía reproducir rápidamente el 55 % de las pulsaciones de teclas del usuario. [ 13 ]

Desventajas

En comparación con el más popular SSH , Mosh presenta los siguientes inconvenientes:

Requisitos previos en el servidor

El principal inconveniente de Mosh es que requiere que el servidor cumpla con requisitos previos adicionales que SSH no necesita. Debido a su diseño, Mosh requiere que el servidor permita conexiones directas a través de UDP. [ 14 ] Los servidores que no cumplen con estos requisitos previos no pueden ser utilizados por Mosh. Ejemplos de tales sistemas incluyen servidores detrás de firewalls que restringen las conexiones al puerto SSH a través de TCP. También son problemáticos los servidores que solo son accesibles indirectamente. Esto último generalmente se gestiona mediante SSH a través de la opción 'ProxyCommand', pero Mosh no lo admite. [ 15 ]

Un puerto por conexión

Por defecto, el servidor intenta asignar el primer puerto UDP libre en el rango 60001–61000, por conexión. Esta asignación dinámica de puertos se considera una carga y un riesgo adicionales para el mantenimiento del cortafuegos. [ 16 ] Una parte significativa del filtrado del cortafuegos se realiza mediante el seguimiento de conexiones, denominado filtrado con estado , que se basa en las banderas SYN/ACK en los segmentos TCP ; los paquetes UDP no tienen dichas banderas. [ 17 ]

Mitigación:

  1. El puerto UDP en el servidor se puede configurar por conexión Mosh, de modo que solo sea necesario abrir un número limitado de puertos [ 18 ].
  2. Los firewalls de inspección profunda de paquetes y los firewalls de aplicaciones pueden manejar esto mejor al examinar el contenido del paquete y asociarlo con la conexión inicial.

Caída de la salida y falta de desplazamiento del terminal

La función scrollback no es compatible con la versión actual de Mosh, y al usarla en un emulador de terminal con barras de desplazamiento, estas desaparecen, pero está previsto para la versión 1.3. [ 19 ] Esta funcionalidad implica una compensación por la limpieza de basura, ya que la salida binaria se borra . Una forma de mitigar esto es usar Mosh en combinación con un multiplexor de terminal como screen o tmux . [ 20 ]

Falta de reenvío de ssh-agent

Actualmente no se admite el reenvío de ssh-agent . [ 21 ]

Falta de reenvío X11

El reenvío X11 aún no es compatible. [ 22 ]

Véase también

Referencias

  1. "Lanzamiento de mosh-1.4.0 · mobile-shell/Mosh" . GitHub .
  2. 1 2 3 4 5 "Mosh: la concha móvil" . Consultado el 28 de marzo de 2013.
  3. Brockmeier, Joe. "Into the Mosh Pit: A Mobile Shell Replacement for SSH" Archivado el 20 de marzo de 2014 en Wayback Machine , linux.com , 10 de abril de 2012. Recuperado el 28 de marzo de 2013.
  4. Delony, David. "Mosh: Secure Shell Without the Pain" , Technopedia , 19 de octubre de 2012. Consultado el 28 de marzo de 2013.
  5. Cox, John. "Investigadores del MIT trazan un nuevo enfoque para los protocolos de Internet móvil". Archivado el 18 de octubre de 2012 en Wayback Machine , Network World , 6 de julio de 2012. Consultado el 28 de marzo de 2013.
  6. Beckert, Axel. "Mosh y AutoSSH: herramientas de shell remoto que facilitan la vida en una red lenta o en constante cambio" , Linux Magazine , noviembre de 2012.
  7. Leyden, John. "Mosh, el grupo de música con capacidad de leer la mente del MIT, se enfrenta a los demonios de SSH" , The Register , 13 de abril de 2012. Consultado el 28 de marzo de 2013.
  8. 1 2 3 4 Winstein, Keith. "Mosh: Un shell remoto interactivo para clientes móviles" , Conferencia Técnica Anual de USENIX 2012, Boston, Mass., 14 de junio de 2012.
  9. "Características de Termius" , Crystalnix.
  10. "El MIT presenta un nuevo protocolo de Internet para clientes móviles"
  11. Winstein, Keith y Balakrishnan, Hari. "Mosh: Un shell remoto interactivo para clientes móviles (borrador más detallado)" . Consultado el 28 de marzo de 2013.
  12. Nagaraj, Kanthi y McMilin, Emily. "Mosh" , Reproducing Network Research , 14 de marzo de 2013. Recuperado el 28 de marzo de 2013.
  13. Aljunied, Ahmed. "Evaluación de los resultados de rendimiento de 'Mobile Shell' de Mosh" , Reproducing Network Research , 13 de marzo de 2013. Recuperado el 28 de marzo de 2013.
  14. "'Mosh iniciará sesión con el usuario a través de SSH y luego establecerá una conexión en un puerto UDP entre 60000 y 61000.'" , Consultado el 19 de junio de 2014.
  15. "Informe de error de Mosh n.° 285: No se puede usar una conexión SSH basada en ProxyCommand" , consultado el 18 de junio de 2014.
  16. "¿Peligros de abrir una amplia gama de puertos? (mosh)" , Seguridad informática (Stack Exchange) , 13 de abril de 2012. Consultado el 28 de marzo de 2013.
  17. Multiplexación de más sesiones en el mismo puerto UDP
  18. "Utilice -p para definir el puerto UDP remoto"
  19. https://github.com/keithw/mosh/issues/2 "Se planea la compatibilidad con scrollback para la versión 1.3"
  20. "Desplazarse hacia atrás y pantalla alternativa (antes: Usar pantalla alternativa en smcup/rmcup)"
  21. "Reenvío de agente SSH"
  22. "Soporte para reenvío X"