GoTTY: comparta su terminal de 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 las 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 los navegadores web. Y, lo que es más importante, GoTTY ejecuta un servidor de socket web que básicamente transfiere la salida de TTY a los clientes y recibe información de los clientes (es decir, si se permite la entrada de clientes) a TTY .
Su arquitectura (hterm + web socket idea) se inspiró en el programa Wetty que habilita el terminal a través de HTTP y HTTPS .
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 usar GoTTY en Linux
Para ejecutarlo, puede utilizar la variable GOBIN env y la función de autocompletar 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 exportar a continuación :
export PATH="$PATH:$GOBIN"
Guarde el archivo y ciérrelo. Luego fuente 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 de 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 principal archivo de personalización leído por los comandos de Gotty, así que créalo de la siguiente manera:
# touch ~/.gotty
Y configure 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 utilizando la opción --index
desde la línea de comando:
# gotty --index /path/to/index.html uptime
Cómo usar las funciones de seguridad en GoTTY
Debido a que GoTTY no ofrece seguridad confiable de manera predeterminada, debe usar manualmente ciertas funciones de seguridad que se explican a continuación
Tenga en cuenta que, de forma predeterminada, GoTTY no permite que los clientes escriban datos en el TTY, solo habilita el cambio de tamaño de la ventana.
Sin embargo, puede usar la opción -w
o --permit-write
para permitir que los clientes escriban en el TTY, lo cual no se recomienda debido a las 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 como se ve desde el navegador web (use los comandos vi aquí como de costumbre):

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 de GoTTY.
El siguiente comando restringirá el acceso del cliente utilizando la opción -c
para solicitar a los usuarios las credenciales especificadas (nombre de usuario: prueba y contraseña: @ 67890 ):
# gotty -w -p "9000" -c "test:@67890" glances

Otra forma de restringir el acceso al servidor es mediante la opción -r
. Aquí, GoTTY generará una URL aleatoria para que solo los usuarios que conocen la URL puedan acceder al servidor.
También use la opción –título del formato "GoTTY - {{.Command}} ({{.Hostname}}) " para definir el título de la interfaz de los navegadores web y el comando de miradas se usa para mostrar las estadísticas de monitoreo del sistema :
# gotty -r --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances
El siguiente es el resultado del comando anterior como se ve desde la interfaz del navegador web:

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 las credenciales de usuario o cualquier otra información, debe usar -t
o - -tls
opción que habilita TLS/SSL en la sesión:
De forma predeterminada, GoTTY leerá el archivo de certificado ~/.gotty.crt
y el archivo de clave ~/.gotty.key
, por lo tanto, comience también creando una certificación autofirmada como el archivo de claves que utiliza el comando openssl a continuación (responda la pregunta para generar el certificado y los archivos de claves):
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ~/.gotty.key -out ~/.gotty.crt
Luego, use GoTTY de manera segura con SSL/TLS habilitado de la siguiente manera:
# gotty -tr --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances
Puede utilizar los multiplexores de terminal para compartir un solo 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 de 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.