Obtenga mejores sesiones remotas en Linux con Mosh y Tmux

Una de las fortalezas de Linux es su orientación hacia las redes, que se debe en gran parte a su herencia Unix. Hay una razón por la que Linux es un sistema operativo de elección para servidores.

La forma principal de acceder de forma remota a los servidores Linux es a través de SSH o Secure Shell. Si bien es útil y seguro, fue diseñado en una era antes de que las conexiones Wi-Fi y celulares se volvieran comunes.

Si mueve su computadora a una red Wi-Fi diferente o la pone en suspensión, es posible que se desconecte con una pantalla de terminal aparentemente congelada.

¿Por qué Mosh + Tmux?

Afortunadamente, hay un par de herramientas que harán que la computación remota con SSH sea más fácil de usar y más confiable. Puede usarlos en todo, desde una terminal física en un centro de datos hasta un servidor doméstico, en un servidor en la nube, incluso en otra máquina de escritorio que ejecute Unix o un sistema operativo BSD.

Mosh es una herramienta sobre SSH que lo advierte de los cambios en las conexiones de red, y tmux es un "multiplexor de terminal" que le permite conservar una sesión de shell en diferentes inicios de sesión e incluso compartirlos.

Leer más: ¿Qué es SSH y qué representa?

Empezando con Mosh

Mosh es un proyecto de código abierto que hace que SSH funcione en roaming y conexiones intermitentes, ya que muchas conexiones inalámbricas son ambas.

Puede cambiar su computadora de una red cableada a una red cableada, a una red inalámbrica diferente, y su conexión permanecerá activa. También puede poner su computadora portátil en suspensión mientras está conectada y después de que la red se vuelva a conectar, podrá escribir en la ventana de la terminal.

Relacionado: administre conexiones SSH remotas con estos comandos de Linux

Si pierde su conexión de red, Mosh le dirá que no ha recibido noticias del servidor remoto. Si el servidor tarda en repetir los caracteres, subrayará lo que escriba hasta que vuelva a aparecer la última pantalla.

Hay más detalles técnicos en un artículo escrito por los autores, pero instalarlo como usuario es bastante simple. Mosh está ampliamente disponible en la mayoría de los administradores de paquetes de las distribuciones de Linux. También está disponible como una aplicación de Google Chrome.

Instalar Mosh en Linux

Por ejemplo, para instalar en Ubuntu:

 sudo apt install mosh

Por supuesto, el servidor también deberá tener instalado el servidor Mosh. La ventaja de Mosh es que el componente del servidor se puede ejecutar en modo de usuario, por lo que no es necesario ser root para instalarlo.

Usando Mosh

Cuando desee conectarse a su máquina remota, simplemente escriba:

 mosh username@server

Obviamente, querrá reemplazar el "nombre de usuario" y el "servidor" con su nombre de usuario y el nombre de la máquina a la que está intentando conectarse.

Consulte la documentación si tiene necesidades más especializadas, como conectarse a un puerto diferente.

Si todo funciona correctamente, tendrá una sesión de terminal remota, solo con SSH. Podrá emitir comandos de la misma manera, pero su conexión será más confiable.

Empezando con Tmux

Tiene una conexión de terminal remota que puede sobrevivir a los cambios de red inalámbrica, pero ¿qué pasa cuando finalmente está conectado?

Puede ejecutar un trabajo que lleve mucho tiempo, como instalar software o incluso un trabajo de compilación largo. ¿Qué pasa si te desconectas? Es probable que el trabajo se detenga cuando lo haga la terminal.

Además, solo puede hacer una cosa a la vez en la terminal, incluso con el control del trabajo. Si desea ejecutar un editor de pantalla completa, ocupará todo el terminal.

Tmux es una respuesta a estos problemas. Es un "multiplexor de terminal" que le permite ejecutar múltiples terminales en una ventana. Es como un terminal con pestañas en un escritorio Linux, pero mucho más flexible.

Puede desconectar una sesión y cerrar la sesión, para volver a ella más tarde y retomarla justo donde la dejó. Puede abrir varias ventanas de terminal. Puede editar un programa en una ventana en un editor y probarlo en la línea de comando en otro.

La instalación de tmux también es muy sencilla. Al igual que Mosh, está incluido en muchos administradores de paquetes de distribución de Linux. En Ubuntu, simplemente escribiría:

 sudo apt install tmux

Obviamente, tendrá que instalar esto en su máquina remota para usarlo allí, pero es bastante útil, también localmente.

Cuando está instalado, ejecuta tmux usando el comando:

 tmux

Luego, se iniciará en una ventana de terminal, similar a una que haya iniciado localmente. Verá una barra de estado que muestra en qué ventana se encuentra.

Tmux divide la pantalla en "ventanas" con múltiples "paneles", mostrando sus propios terminales. Puede reorganizar y cambiar el tamaño de estos paneles, con ventanas ilimitadas con sus propios paneles.

Debido a que tmux es un programa basado en terminal, se controla completamente desde el teclado. El comando de prefijo predeterminado para ejecutar comandos en tmux es Ctrl + B. Esto se puede cambiar en el archivo de configuración.

El archivo de configuración del usuario es .tmux.conf en su directorio personal. La documentación tiene más detalles, pero la cantidad de personalizaciones que puede realizar es extensa.

Tmux puede tener una curva de aprendizaje, pero con otros programas "difíciles" en el mundo Linux / Unix, muchos usuarios encuentran que el tiempo dedicado a aprender estos programas está bien invertido en lo que les permite hacer.

Una de las opciones más poderosas es la capacidad de desconectar su sesión y volver a conectarla más tarde. Para hacer esto, escriba Ctrl + D. Para volver a adjuntar, escriba "tmux attach" en el shell y se encontrará de nuevo en su sesión.

Esto significa que su sesión permanecerá activa mientras lo haga la máquina. Este método también es popular para ejecutar aplicaciones de chat como IRC, ya que las personas pueden permanecer en las salas de chat durante mucho tiempo. También es posible compartir sesiones con otras personas, como para la programación en pareja.

Combinando Mosh y Tmux

El verdadero poder de una sesión remota proviene de las combinaciones de Mosh y tmux.

Con Mosh, puede iniciar sesión en su máquina remota desde cualquier lugar y no preocuparse por la confiabilidad de su conexión. Si desea ejecutar algo que puede llevar mucho tiempo, puede desconectar su sesión y volver a ella más tarde.

La combinación de Mosh y tmux le permitirá la máxima confiabilidad y flexibilidad en sus inicios de sesión remotos. Hay mucho más para explorar solo en tmux que desatará el poder de sus sesiones de terminal.