GoTTY - Comparteix el teu terminal Linux (TTY) com a aplicació web


GoTTY és una senzilla eina de línia d'ordres basada en GoLang que us permet compartir el vostre terminal (TTY) com a aplicació web. Converteix les eines de línia d'ordres en aplicacions web.

Utilitza l'emulador de terminal de Chrome OS (hterm) per executar un terminal basat en JavaScript en un navegador web. I el que és important, GoTTY executa un servidor de connexió web que bàsicament transfereix la sortida del TTY als clients i rep l'entrada dels clients (és a dir, si es permet l'entrada dels clients) i l'envia al TTY.

La seva arquitectura (idea hterm + web socket) es va inspirar en el programa Wetty que permet el terminal a través d'HTTP i HTTPS.

Hauríeu de tenir l'entorn GoLang (Go Programming Language) instal·lat a Linux per executar GoTTY.

Com instal·lar GoTTY en sistemes Linux

Si ja teniu un entorn GoLang que funcioni, executeu l'ordre go get a continuació per instal·lar-lo:

# go get github.com/yudai/gotty

L'ordre anterior instal·larà el binari GoTTY a la vostra variable d'entorn GOBIN, proveu de comprovar si aquest és el cas:

# ls $GOPATH/bin/

Com utilitzar GoTTY a Linux

Per executar-lo, podeu utilitzar la variable d'env de GOBIN i la funció d'emplenament automàtic d'ordres de la següent manera:

# $GOBIN/gotty

En cas contrari, executeu GoTTY o qualsevol altre programa Go sense escriure el camí complet al binari, afegiu la vostra variable GOBIN a PATH al fitxer ~/.profile mitjançant l'ordre d'exportació següent:

export PATH="$PATH:$GOBIN"

Deseu el fitxer i tanqueu-lo. A continuació, obteniu el fitxer per efectuar els canvis anteriors:

# source ~/.profile

La sintaxi general per executar ordres GoTTY és:

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

Ara executeu GoTTY amb qualsevol ordre com ara l'ordre df per veure l'espai i l'ús de les particions del disc del sistema des del navegador web:

# gotty df -h

GoTTY iniciarà un servidor web al port 8080 de manera predeterminada. A continuació, obriu l'URL: http://127.0.0.1:8080/ al vostre navegador web i veureu l'ordre en execució com si s'estigués executant al vostre terminal:

Com personalitzar GoTTY a Linux

Podeu modificar les opcions per defecte i el vostre terminal (hterm) al fitxer de perfil ~/.gotty, carregarà aquest fitxer per defecte en cas que existeixi.

Aquest és el fitxer de personalització principal llegit per les ordres de gotty, per tant, creeu-lo de la següent manera:

# touch ~/.gotty

I configureu els vostres propis valors vàlids per a les opcions de configuració (trobeu totes les opcions de configuració aquí) per personalitzar GoTTY, per exemple:

// 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)"
}

Podeu configurar el vostre propi fitxer index.html utilitzant l'opció --index des de la línia d'ordres:

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

Com utilitzar les funcions de seguretat a GoTTY

Com que GoTTY no ofereix seguretat fiable de manera predeterminada, heu d'utilitzar manualment certes funcions de seguretat que s'expliquen a continuació.

Tingueu en compte que, de manera predeterminada, GoTTY no permet als clients escriure entrada al TTY, només permet el redimensionament de la finestra.

Tanmateix, podeu utilitzar l'opció -w o --permit-write per permetre als clients escriure al TTY, cosa que no es recomana a causa de les amenaces de seguretat del servidor.

L'ordre següent utilitzarà l'editor de línia d'ordres vi per obrir el fitxer fossmint.txt per editar-lo al navegador web:

# gotty -w vi fossmint.txt

A continuació es mostra la interfície vi tal com es veu des del navegador web (utilitza les ordres vi aquí com de costum):

Intenteu activar un mecanisme d'autenticació bàsic, on els clients hauran d'introduir el nom d'usuari i la contrasenya especificats per connectar-se al servidor GoTTY.

L'ordre següent restringirà l'accés del client mitjançant l'opció -c per demanar als usuaris les credencials especificades (nom d'usuari: prova i contrasenya: @67890):

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

Una altra manera de restringir l'accés al servidor és utilitzant l'opció -r. Aquí, GoTTY generarà un URL aleatori perquè només els usuaris que coneguin l'URL puguin accedir al servidor.

També utilitzeu l'opció –title-format “GoTTY – {{ .Command }} ({{ .Hostname }})” per definir el títol de la interfície del navegador web i l'ordre mirades s'utilitza per mostrar les estadístiques de supervisió del sistema:

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

El següent és el resultat de l'ordre anterior tal com es veu des de la interfície del navegador web:

Com que de manera predeterminada, totes les connexions entre el servidor i els clients no estan xifrades, quan envieu informació secreta a través de GoTTY, com ara credencials d'usuari o qualsevol altra informació, heu d'utilitzar -t o - -tls opció que activa TLS/SSL a la sessió:

GoTTY llegirà de manera predeterminada el fitxer de certificat ~/.gotty.crt i el fitxer de claus ~/.gotty.key, per tant, comenceu creant també una certificació autosignada. com a fitxer de claus mitjançant l'ordre openssl següent (respon a la pregunta que es fa per generar els fitxers de certificat i clau):

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

A continuació, utilitzeu GoTTY de manera segura amb SSL/TLS habilitat de la següent manera:

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

Podeu fer servir l'ordre glances (assegureu-vos que teniu instal·lat tmux):

# gotty tmux new -A -s gotty glances 

Per llegir un fitxer de configuració diferent, utilitzeu l'opció -config /path/to/file de la següent manera:

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

Per mostrar la versió de GoTTY, executeu l'ordre:

# gotty -v 

Visiteu el repositori GoTTY GitHub per trobar més exemples d'ús: https://github.com/yudai/gotty

Això és tot! L'heu provat? Com trobes GoTTY? Comparteix els teus pensaments amb nosaltres mitjançant el formulari de comentaris que hi ha a continuació.