Mosh Shell: un cliente basado en SSH para conectar sistemas remotos Unix / Linux


Mosh, que significa Mobile Shell es una aplicación de línea de comandos que se utiliza para conectarse al servidor desde una computadora cliente, a través de Internet. Se puede utilizar como SSH y contiene más funciones que Secure Shell. Es una aplicación similar a SSH, pero con características adicionales. La aplicación fue escrita originalmente por Keith Winstein para Unix como sistema operativo y lanzada bajo GNU GPL v3.

  1. It is a remote terminal application that supports roaming.
  2. Available for all major UNIX-like OS viz., Linux, FreeBSD, Solaris, Mac OS X and Android.
  3. Intermittent Connectivity supported.
  4. Provides intelligent local echo.
  5. Line editing of user keystrokes supported.
  6. Responsive design and Robust Nature over wifi, cellular and long-distance links.
  7. Remain Connected even when IP changes. It usages UDP in place of TCP (used by SSH). TCP time out when connect is reset or new IP assigned but UDP keeps the connection open.
  8. The Connection remains intact when you resume the session after a long time.
  9. No network lag. Shows users typed key and deletions immediately without network lag.
  10. Same old method to login as it was in SSH.
  11. Mechanism to handle packet loss.

Instalación de Mosh Shell en Linux

En sistemas similares a Debian, Ubuntu y Mint, puede instalar fácilmente el paquete Mosh con la ayuda del administrador de paquetes apt-get como se muestra.

# apt-get update 
# apt-get install mosh

En las distribuciones basadas en RHEL/CentOS/Fedora, debe activar el repositorio de terceros llamado EPEL, para instalar mosh desde este repositorio usando el administrador de paquetes yum como se muestra.

# yum update
# yum install mosh

En la versión Fedora 22+, debe usar el administrador de paquetes dnf para instalar mosh como se muestra.

# dnf install mosh

¿Cómo uso Mosh Shell?

1. Intentemos iniciar sesión en un servidor Linux remoto usando mosh shell.

$ mosh [email protected]

Nota: ¿Viste que recibí un error al conectarme porque el puerto no estaba abierto en mi caja CentOS 7 remota? Una solución rápida pero no recomendada que realicé fue:

# systemctl stop firewalld    [on Remote Server]

La forma preferida es abrir un puerto y actualizar las reglas del firewall. Y luego conéctese a mosh en un puerto predefinido. Para obtener detalles en profundidad sobre firewalld, es posible que desee visitar esta publicación.

  1. How to Configure Firewalld

2. Supongamos que el puerto SSH predeterminado 22 se cambió al puerto 70; en este caso, puede definir un puerto personalizado con la ayuda del conmutador "-p" con mosh.

$ mosh -p 70 [email protected]

3. Verifique la versión de Mosh instalado.

$ mosh --version

4. Puede cerrar la sesión mosh y escribir "salir" en el mensaje.

$ exit

5. Mosh admite muchas opciones, que puede ver como:

$ mosh --help
  1. Mosh requires additional prerequisite for example, allow direct connection via UDP, which was not required by SSH.
  2. Dynamic port allocation in the range of 60000-61000. The first open fort is allocated. It requires one port per connection.
  3. Default port allocation is a serious security concern, especially in production.
  4. IPv6 connections supported, but roaming on IPv6 not supported.
  5. Scrollback not supported.
  6. No X11 forwarding supported.
  7. No support for ssh-agent forwarding.

Conclusión

Mosh es una pequeña utilidad que está disponible para descargar en el repositorio de la mayoría de las distribuciones de Linux. Aunque tiene algunas discrepancias, especialmente la preocupación por la seguridad y los requisitos adicionales, sus características como permanecer conectado incluso en itinerancia es su punto a favor. Mi recomendación es que todos los usuarios de Linux que se ocupen de SSH deberían probar esta aplicación y prestar atención, vale la pena probar Mosh.