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ó.