Tmate, comparte tu terminal al instante con cualquiera
En el siguiente artículo vamos a echar un vistazo a Tmate. En el mundo Gnu/linux existen varios programas populares para compartir un escritorio de manera remota (como Teamviewer, Guacamole y TigerVNC, etc). Estos programas se utilizan para compartir toda la pantalla con otras personas. Si es sólo la terminal lo que queremos compartir, Tmate es posiblemente la mejor opción. En realidad este programa es una bifurcación de Tmux. Tmate es algo así como un Teamviewer para nuestra terminal.
Tmate establecerá una conexión segura a través de SSH al sitio web de tmate.io y generará una URL aleatoria para cada sesión. La URL generada se puede compartir con alguien que sea de nuestra confianza. Con ello nos permitirá utilizar la terminal remota en la forma en la que utilizaríamos la nuestra propia, siempre y cuando la conexión esté activa. Es una muy buena opción para colaborar en proyectos comunes, depurar un proyecto con un equipo de desarrolladores u obtener soporte técnico de manera remota. Este programa es compatible con GNU/Linux, Mac OSX y BSD.
Instalación de Tmate en Ubuntu y derivados
En Ubuntu, y sus derivados como Linux Mint, se puede instalar este programa utilizando el siguiente PPA en la terminal (Ctrl+Alt+T). Aun que antes de ello, tendremos que instalar el paquete necesario escribiendo:
sudo apt-get install software-properties-common
Ahora si que ya podemos añadir el PPA a nuestro sistema e instalar el programa. Para ello escribimos la siguiente secuencia de órdenes:
sudo add-apt-repository ppa:tmate.io/archive && sudo apt-get update && sudo apt-get install tmate
Configurar SSH
Antes de comenzar a utilizar este programa, necesitamos crear un par de claves SSH. Debido a que el programa tmate establece una conexión SSH segura con tmate.io utilizando el par de claves SSH local. Esto lo conseguiremos escribiendo en nuestra terminal (Ctrl+Alt+T) lo siguiente:
ssh-keygen -t rsa
Uso de Tmate
Una vez que se haya creado el par de claves SSH, iniciaremos Tmate ejecutando el siguiente comando desde su Terminal:
tmate
Cuando se haya establecido la sesión, ya podremos compartir el ID de la conexión con cualquiera. Se puede compartir con cualquier número de personas en las que confíes. No necesitan estar en la misma red ni tampoco necesitan usar el mismo sistema operativo. Ni tan siquiera tienen que tener tmate o tmux instalado en sus sistemas.
Así es como se ven las sesiones de Tmate:
Como se ve en la captura de pantalla anterior, se nos va a mostrar un ID de sesión SSH (una cadena de caracteres aleatorios) en la parte inferior de la terminal. Simplemente tendremos que copiarla y compartirla con otros para que se puedan conectar. Hay que tener en cuenta que este ID desaparecerá después de unos segundos. Sin embargo, podremos ver las ID de sesión se han utilizado mediante el siguiente comando:
tmate show-messages
El resultado del comando anterior sería algo como lo siguiente:
Como se puede ver en la salida anterior, puedes compartir la terminal a través de una sesión SSH o una sesión web. Para ello tendremos que utilizar los ID de sesión respectivos. Además, puedes compartir la sesión de sólo lectura o la sesión de lectura y escritura.
Conectarse a través de sesiones SSH
Para aquellos usuarios que quieran compartir la Terminal a través de sesiones SSH, tendrá que proporcionar el ID de sesión SSH a los usuarios remotos.
Por ejemplo y utilizando los ID generados en la anterior captura. Los usuarios remotos deberían escribir el siguiente comando para acceder a la sesión de solo lectura que se ha generado en el sistema.
ssh ro-w3boCOq2a5rLDpFnFRUudKTH5@am2.tmate.io
En la sesión de sólo lectura, los usuarios remotos sólo pueden ver la Terminal. No pueden ejecutar ningún comando.
Para compartir la sesión de lectura y escritura, el comando a enviar sería:
ssh R1bXaNj7ZM9r5459Dgpuyl8gS@am2.tmate.io
En este caso, los usuarios remotos pueden acceder a la terminal con el modo de lectura-escritura. Eso significa que pueden ejecutar cualquier comando. Todos los comandos que escriban en la sesión remota también se pueden ver desde su Terminal local.
Conectarse a través de sesiones Web
Para aquellos que quieran compartir el Terminal a través de un navegador web, simplemente tendrán que pasar la URL web a otros para conectarse.
Digamos por ejemplo, que para compartir la lectura y escritura tendría que dar la siguiente URL a mis compañeros de trabajo: https://tmate.io/t/R1bXaNj7ZM9r5459Dgpuyl8gS
Cuando abran esta URL en el navegador, se verá algo como la siguiente captura:
Para salir de una sesión, solo hay que escribir en la terminal exit. Si alguien necesita más detalles acerca de este programa, se puede consultar las páginas que man pone a nuestra disposición. También podremos obtener más información en la página web del proyecto.
El artículo Tmate, comparte tu terminal al instante con cualquiera ha sido originalmente publicado en Ubunlog.