Sistemas

Mosh Shell – Un cliente SSH para conexión remota sin cortes

Los administradores de sistemas trabajamos en condiciones especiales con mala conectividad, ya sea por el cuestiones temporales o por cuestiones de calidad, y perder de forma constante nuestra conexión  al shell que estamos conectados es un pequeño desastre, que muchos suplimos con el uso de multiplexadores como el comando screen. Sin embargo, el uso combinado con Mosh puede ser una delicia para nuestro trabajo.

Mosh

Mosh, el acrónimo de Mobile Shell, es una aplicación (en linea de comandos) que es usada para conectarse a un servidor desde un ordenador o dispositivo cliente, a traves de la red. Puede usarse como SSH y contiene algunas características adicionales al SSH. Es una aplicación escrita por Keith Winstein, para sistemas UNIX, bajo licencia GNU GPL v3.

Características de Mosh

  • Es una aplicación de terminal remoto que admite roaming.
  • Mecanismo para manejar la pérdida de paquetes.
  • Recuperación de cortes de red continuados.
  • Disponible para todos los principales sistemas operativos de tipo UNIX, Linux, FreeBSD, Solaris, Mac OS X y Android.
  • Proporciona ecos locales inteligentes.
  • Se admite la edición de atajos de teclado.
  • Diseño adaptado y robusto a través de enlaces wifi, celulares y de larga distancia.
  • Permanece conectado incluso cuando IP cambia (como por ejemplo operadores de 3G/4G con red deficitaria). Utiliza UDP en lugar de TCP (utilizado por SSH). TCP time out cuando se restablece la conexión o se asigna una nueva IP, pero UDP mantiene abierta la conexión.
  • La conexión permanece intacta al reanudar la sesión después de un tiempo prolongado.
  • No hay retraso en la red. Muestra las secuencias tecleadas tras un corte inmediatamente después de recuperar la conexión.
  • El mismo método de inicio de sesión como en SSH.

Instalación de Mosh Shell en Linux

Dependiendo de nuestra distirbución usaremos el gestor de paquetes adecuado, y en algunos casos puede que necesitemos instalar un repositorio especial. Pero lo que si es cierto es que necesitamos instalarlo en ambos elementos de la conexión, el servidor y el cliente.

Debian/Ubuntu/Mint

# apt-get update
# apt-get install mosh

Alternativa en Ubuntu

# apt-get install python-software-properties
# add-apt-repository ppa:keithw/mosh
# apt-get update
# apt-get install mosh

RHEL/CentOs/Fedora

Para estas distribuciones necesitaremos instalar un repositorio especial llamado EPEL, (ver nuestro artículo para instalar EPEL en WHM/Cpanel con centos si usas WH/Cpanel)

# yum -y install epel-release
# yum repolist
# yum -y install mosh

Firewall

Para trabajar Mosh requiere para su trabajo los puertos UDP desde el 60000 hasta el 61000, pues es a través de es nivel de transporte, donde se realiza el trabajo para permitir que las conexiones permanezcan intactas, y pueda reconectarse tras una perdida de conexión, SSH a través del protocolo TCP.

En mi caso que uso CSF Config Firewall solo tengo que editar la linea UDP_IN para añadir 60000:61000 y hacer un csf -ra

De modo manual (no CSF) sería algo así:

# iptables -I INPUT 1 -p udp --dport 60000:61000 -j ACCEPT

Como usar Mosh Shell

Si se hace un uso normal (puerto original, sin opciones de ssh)

# ssh user@ejemplo.es

# mosh user@ejemplo.es

Si necesitamos pasar parametros sería algo asi:

# mosh --sh"ssh -p 22000" user@ejemplo.es

Una vez conectado, Mosh nos mostrar un shell como el de una conexión SSH. Sin embargo debajo de esta fachada, hay mucho más. Una tubería que añade una serie de características que permitirán que en condiciones de mala calidad de la conexión podamos trabajar de forma continuada.

El modo de funcionamiento además, a través del modo vt500, ahorrará ancho de banda, pues los cambios en pantalla solo se notificarán para el area visible. Ademas, el nos indicará cuando hay una perdida de conectividad, y nos anunciará cuando la reconexión es alcanzada nuevamente. Una vez se alcance la condición, Mosh actualizará aquello que ya escribimos.

Aun así, yo sigo usando screen como multiplexor, sobre todo en operaciones sensibles como lo son las actualizaciones de sistemas, edición de ficheros de configuración o contraseñas, etc.


Imagen Designed by Freepik y montada por Abdelkarim Mateos

Comparte este artículo

Artículo Antiguo
Este artículo tiene más de 2 años. Es muy probable que su contenido este anticuado, aunque pueda ser de utilidad, es conveniente que revises otras informaciones al respecto. Si lo encuentras útil o crees que puede ser actualizado, deja tu comentario con la actualización para poder editarlo y que pueda ser útil a los demás.

Comparte este articulo en

Abkrim

Yo solo se que no se nada, y que me paso la vida aprendiendo

Entradas recientes

Fatal error: Allowed memory size of 268435456 bytes exhausted en WordPress. Otro post más… pero diferente

No es la primera vez que me encuentro con el agotamiento de la memoria en…

5 meses hace

Problemas de Acceso con Centos 7, Almalinux 8, Ubuntu 20.04, y Debian 10/11: Un Enigma Firewall CSF

Descubre cómo solucionar problemas de acceso a servidores con Centos 7, Almalinux 8, Ubuntu 20.04…

9 meses hace

MySQL no inicia debido a errores en la base de datos interna de MySQL

Uno de los mensajes más alarmantes que puedes encontrarte es aquel que indica que tu…

11 meses hace

Actualización de seguridad 6.2.1 para WordPress y la importancia de los backups confiables

La seguridad de nuestro sitio web es de vital importancia en el mundo digital actual.…

12 meses hace

El mito de los ficheros SVG inseguros en las subidas de ficheros

Los ficheros SVG son archivos gráficos vectoriales escalables ampliamente utilizados en diseño web. Aunque no…

12 meses hace

Solución de problemas de errores 500 en Castris Hosting: una guía para usuarios de cPanel

En este artículo, te guiamos en la solución de problemas de errores 500 en Castris…

12 meses hace