Búsqueda de sitios web

GoTTY: comparta su terminal Linux (TTY) como una aplicación web


GoTTY es una sencilla herramienta de línea de comandos basada en GoLang que le permite compartir su terminal (TTY) como una aplicación web. Convierte herramientas de línea de comandos en aplicaciones web.

Emplea el emulador de terminal de Chrome OS (hterm) para ejecutar un terminal basado en JavaScript en un navegador web. Y lo que es más importante, GoTTY ejecuta un servidor de socket web que básicamente transfiere la salida del TTY a los clientes y recibe entradas de los clientes (es decir, si se permiten entradas de los clientes) y las reenvía. al TTY.

Lea también: Teleconsola: comparta su terminal Linux con sus amigos

Su arquitectura (hterm + idea de socket web) se inspiró en el programa Wetty que permite la terminal a través de HTTP y HTTPS.

Requisitos previos:

Debe tener el entorno GoLang (Go Programming Language) instalado en Linux para ejecutar GoTTY.

Cómo instalar GoTTY en sistemas Linux

Si ya tiene un entorno GoLang en funcionamiento, ejecute el comando go get a continuación para instalarlo:

go get github.com/yudai/gotty

El comando anterior instalará el binario GoTTY en su variable de entorno GOBIN, intente verificar si ese es el caso:

ls $GOPATH/bin/

Cómo utilizar GoTTY en Linux

Para ejecutarlo, puede utilizar la variable GOBIN env y la función de autocompletado del comando de la siguiente manera:

$GOBIN/gotty

De lo contrario, ejecute GoTTY o cualquier otro programa Go sin escribir la ruta completa al binario, agregue su variable GOBIN a PATH en el archivo ~/.profile usando el comando export a continuación :

export PATH="$PATH:$GOBIN"

Guarde el archivo y ciérrelo. Luego obtenga el archivo para efectuar los cambios anteriores:

source ~/.profile

La sintaxis general para ejecutar comandos de GoTTY es:

Usage: gotty [options] <Linux command here> [<arguments...>]

Ahora ejecute GoTTY con cualquier comando, como el comando df, para ver el espacio y el uso de las particiones del disco del sistema desde el navegador web:

gotty df -h

GoTTY iniciará un servidor web en el puerto 8080 de forma predeterminada. Luego abra la URL: http://127.0.0.1:8080/ en su navegador web y verá el comando en ejecución como si se estuviera ejecutando en su terminal:

Cómo personalizar GoTTY en Linux

Puede modificar las opciones predeterminadas y su terminal (hterm) en el archivo de perfil ~/.gotty, cargará este archivo de forma predeterminada en caso de que exista.

Este es el archivo de personalización principal leído por los comandos gotty, así que créelo de la siguiente manera:

touch ~/.gotty

Y establezca sus propios valores válidos para las opciones de configuración (encuentre todas las opciones de configuración aquí) para personalizar GoTTY, por ejemplo:

// Listen at port 9000 by default
port = "9000"

// Enable TSL/SSL by default
enable_tls = true

// hterm preferences
// Smaller font and a little bit bluer background color
preferences {
    font_size = 5,
    background_color = "rgb(16, 16, 32)"
}

Puede configurar su propio archivo index.html usando la opción --index desde la línea de comando:

gotty --index /path/to/index.html uptime

Cómo utilizar las funciones de seguridad en GoTTY

Debido a que GoTTY no ofrece seguridad confiable de forma predeterminada, deberá utilizar manualmente ciertas funciones de seguridad que se explican a continuación.

Permitir a los clientes ejecutar comandos/escribir entradas en la terminal

Tenga en cuenta que, de forma predeterminada, GoTTY no permite a los clientes escribir datos en el TTY, solo permite cambiar el tamaño de la ventana.

Sin embargo, puede utilizar la opción -w o --permit-write para permitir que los clientes escriban en el TTY, lo cual no se recomienda debido a amenazas de seguridad al servidor.

El siguiente comando utilizará el editor de línea de comandos vi para abrir el archivo fossmint.txt para editarlo en el navegador web:

gotty -w vi fossmint.txt

A continuación se muestra la interfaz vi vista desde el navegador web (use los comandos vi aquí como de costumbre):

Utilice GoTTY con autenticación básica (nombre de usuario y contraseña)

Intente activar un mecanismo de autenticación básico, donde los clientes deberán ingresar el nombre de usuario y la contraseña especificados para conectarse al servidor GoTTY.

El siguiente comando restringirá el acceso del cliente usando la opción -c para solicitar a los usuarios las credenciales especificadas (nombre de usuario: test y contraseña: @67890):

gotty -w -p "9000" -c "test:@67890" glances

Gotty Generar URL aleatoria

Otra forma de restringir el acceso al servidor es mediante la opción -r. Aquí, GoTTY generará una URL aleatoria para que sólo los usuarios que conocen la URL puedan acceder al servidor.

Utilice también la opción –title-format “GoTTY – {{ .Command }} ({{ .Hostname }})” para definir el título de la interfaz del navegador web y el comando vistazos se utiliza para mostrar estadísticas de monitoreo del sistema. :

gotty -r --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances

El siguiente es el resultado del comando anterior visto desde la interfaz del navegador web:

Utilice GoTTY con SSL/TLS

Debido a que, de forma predeterminada, todas las conexiones entre el servidor y los clientes no están cifradas, cuando envía información secreta a través de GoTTY, como credenciales de usuario o cualquier otra información, debe usar -t o - -tls opción que habilita TLS/SSL en la sesión:

GoTTY leerá de forma predeterminada el archivo de certificado ~/.gotty.crt y el archivo de clave ~/.gotty.key; por lo tanto, comience creando también una certificación autofirmada. como archivo de clave usando el comando openssl a continuación (responda la pregunta formulada para generar el certificado y los archivos de clave):

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ~/.gotty.key -out ~/.gotty.crt

Luego use GoTTY de forma segura con SSL/TLS habilitado de la siguiente manera:

gotty -tr --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances

Comparta su terminal con varios clientes

Puede utilizar multiplexores de terminal para compartir un único proceso con varios clientes; el siguiente comando iniciará una nueva sesión de tmux llamada gotty con el comando de miradas (asegúrese de tener tmux instalado):

gotty tmux new -A -s gotty glances 

Para leer un archivo de configuración diferente, use la opción –config “/path/to/file” así:

gotty -tr --config "~/gotty_new_config" --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances

Para mostrar la versión de GoTTY, ejecute el comando:

gotty -v 

Visite el repositorio GoTTY GitHub para encontrar más ejemplos de uso: https://github.com/yudai/gotty

¡Eso es todo! ¿Lo ha probado? ¿Cómo encuentras GoTTY? Comparta sus pensamientos con nosotros a través del formulario de comentarios a continuación.