Esta guía explica qué es TermPair, cómo funciona y cómo compartir y controlar terminales en tiempo real desde un navegador web con cifrado de extremo a extremo usando TermPair en Linux.
¿Qué es TermPair?
Par de términos es un servicio web que permite a cualquier persona ver y controlar sus sesiones de Terminal en tiempo real desde un navegador web. En pocas palabras, permite a las personas colaborar, ver, compartir, todo en tiempo real.
Al usar TermPair, puede compartir su Terminal en la Web de manera rápida, fácil y segura y acceder a él y controlarlo desde cualquier dispositivo habilitado para Internet.
TermPair utiliza AES-GCM
128 bit
Cifrado de extremo a extremo, por lo que todos los datos de la Terminal se transfieren de forma segura entre el cliente y el navegador web. Ni el servidor de TermPair ni terceros pueden leer los datos transmitidos.
Es de uso completamente gratuito y el código fuente de TermPair está disponible públicamente en GitHub. TermPair está escrito con Python y tecnologías web como CSS, HTML y JavaScript.
¿Cómo funciona TermPair?
TermPair consta de los siguientes componentes:
- servidor TermPair,
- Cliente de terminal Unix (su sistema),
- Navegador web.
La transmisión de datos se produce entre el cliente de Terminal y el navegador como se describe a continuación:
1. Primero, iniciamos el servidor TermPair con termpair serve
comando de nuestro sistema. El servidor TermPair actúa como un enrutador entre su Terminal y el navegador. Envía datos cifrados entre los clientes terminales y los navegadores conectados.
2. El servidor TermPair escucha las conexiones websocket de termpair desde el cliente de terminal Unix y mantiene una asignación a todos los navegadores conectados.
3. En el cliente de terminal de Unix, un pseudoterminal (pty
) se inicia el proceso con un nuevo shell y se genera una clave de cifrado en el sistema del usuario.
4. Una vez que se genera la clave de cifrado, la nueva sesión del cliente se registra en el servidor de TermPair con una ID de sesión única.
5. A continuación, todo pty
IO se cifra con una clave secreta, por lo que el servidor TermPair no puede leerlo. Después de cifrar los datos del terminal, se comparten a través de websocket con el servidor TermPair para su posterior enrutamiento.
6. El servidor TermPair recibe y envía los datos del terminal encriptados a los navegadores a través de websocket. Tenga en cuenta que el servidor de TermPair no recibe la clave secreta. Solo recibe los datos cifrados.
7. El navegador obtiene la clave de cifrado secreta a través de una parte de la URL. El hash de URL que contiene la clave secreta no estará expuesto al servidor de TermPair.
8. Cuando los navegadores recibieron los datos cifrados, los descifra usando la clave secreta y finalmente muestra la salida de la Terminal en el navegador.
9. Del mismo modo, cuando los datos se envían desde el navegador al terminal, se cifran mediante una clave secreta y se reenvían al servidor de TermPair.
10. El servidor recibe los datos cifrados y los envía de regreso a la Terminal. Los datos se descifran usando la clave secreta en la Terminal y finalmente se muestran en la salida estándar.
Así es como se produce la transferencia de datos entre el cliente Terminal, el servidor TermPair y el navegador web. Todos los datos se cifran y se transmiten de forma segura de un punto a otro.
TermPair funciona en todos los shells, por ejemplo bash
, zsh
y funciona con cualquier programa como vim
, emacs
, tmux
, ssh
etc.
Advertencias
TermPair es bueno para aquellos que quieren colaborar en tiempo real. También tiene algunas lagunas de seguridad. Si no tienes cuidado, podría ser un error catastrófico.
Nunca deberías intentar esto en un lugar público. Alguien puede ver la URL compartible e intentar obtener el control de su sistema. Más importante aún, debe ser consciente de lo que alguien puede hacer si le permite controlar su Terminal.
Cualquier persona con el ID compartible (URL) de TermPair puede hacer lo siguiente si conoce el sudo
clave. Si iniciaste la sesión con root
usuario, ¡sería muy peligroso!
- Pueden ver todos los caracteres emitidos por la terminal.
- Ejecutar cualquier comando,
- Acceda a todo el sistema de archivos,
- Ver todos los datos en su sistema,
- Eliminar todos los datos,
- Reiniciar o apagar el sistema,
- Instalar un malware o virus,
- ¡y cualquier cosa, todo!
Si está en una red cerrada y confiable, o si quiere probarlo en su sistema local, adelante. No hará ningún daño.
Instalar TermPair en Linux
Para que TermPair funcione, debe tener un sistema Linux con Python 3.6+ instalado.
Instale TermPair en Linux usando pipx
o pip
administradores de paquetes como a continuación:
$ pipx install termpair
O,
$ pip install termpair
También puede ejecutar TermPair sin instalarlo:
Servir:
$ pipx run termpair serve
Luego comparte:
$ pipx run termpair share --open-browser
Comparta y controle terminales en tiempo real desde un navegador web usando TermPair
1. Inicie el servidor TermPair usando el comando:
$ termpair serve
Salida de muestra:
INFO: Started server process [19084] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://localhost:8000 (Press CTRL+C to quit)
Esto debería estar ejecutándose antes de que comiences a compartir tu Terminal.
2. Abra una nueva ventana o pestaña de Terminal y ejecute el siguiente comando para compartir su Terminal:
$ termpair share --host "http://localhost/" --port 8000
Salida de muestra:
Connection established with end-to-end encryption 🔒 Sharing '/bin/bash' at http://localhost:8000/?terminal_id=0a8cxxxxxxxxxx1234x*& Type 'exit' or close terminal to stop sharing.
Se generará una ID de sesión única de TermPair como se muestra arriba.
3. Abra su navegador web y copie/pegue el ID de sesión que se muestra en la barra de direcciones.

Ahora, lo que escribas en la Terminal aparecerá en el navegador y viceversa. Significado:puede escribir los comandos en el navegador o en la terminal. La entrada y la salida aparecerán en ambas ventanas. Esto otorga control total a cualquier persona que tenga el ID de sesión.
Para salir del uso compartido de la terminal, simplemente cierre la terminal o escriba exit
y presiona ENTER
. Después de dejar de compartir la terminal, vaya a la Terminal donde se inició TermPair y presione CTRL+C
para salir.
4. Si no desea otorgar el control total, puede usar --no-browser-control
, o -n
opción.
Asegúrese de que el servidor TermPair esté iniciado e inicie el uso compartido de terminales en modo de solo lectura, como se muestra a continuación.
$ termpair serve
$ termpair share --host "http://localhost/" --port 8000 -n
En el modo de solo lectura, no pueden ejecutar ningún comando en el navegador, solo ver lo que está impreso en la Terminal. Puedes decidir quién puede y quién no puede controlar tu Terminal.
5. De forma predeterminada, el servidor TermPair se ejecutará en el puerto 8000
. También puede elegir cualquier otro puerto de su elección. Por ejemplo, el siguiente comando ejecuta el servidor TermPair en el puerto 8080
.
$ termpair share --host "http://localhost/" --port 8080
6. Si desea abrir un navegador web automáticamente después de comenzar a compartir, use --open-browser
, o -b
opción.
$ termpair share --host "http://localhost/" --port 8000 -b
Recuerde que el servidor termpair debe estar ejecutándose antes de usar este comando.
7. Para mostrar la sección de ayuda, ejecute:
$ termpair serve --help
$ termpair share --help
Conclusión
TermPair nos ayuda a compartir sus sesiones de Terminal con cualquier persona sin muchas molestias. Puede usarlo cuando necesite ayuda con su código. Puede compartir la Terminal con su amigo o colega de confianza. Pueden ver y acceder instantáneamente a su sesión de terminal desde cualquier lugar y ayudarlo en todo lo posible.
Como ya se dijo, también debe tener cuidado al compartir su terminal. Si no comprende cómo funciona, probablemente sea una buena idea evitar el uso de esta herramienta.