Ricerca nel sito web

GoTTY: condividi il tuo terminale Linux (TTY) come applicazione Web


GoTTY è un semplice strumento da riga di comando basato su GoLang che ti consente di condividere il tuo terminale (TTY) come applicazione web. Trasforma gli strumenti da riga di comando in applicazioni web.

Utilizza l'emulatore di terminale di Chrome OS (hterm) per eseguire un terminale basato su JavaScript su un browser web. E, cosa più importante, GoTTY esegue un server socket web che sostanzialmente trasferisce l'output dal TTY ai client e riceve input dai client (ovvero se l'input dai client è consentito) e lo inoltra al TTY.

Leggi anche: Teleconsole – Condividi il tuo terminale Linux con i tuoi amici

La sua architettura (hterm + web socket idea) è stata ispirata dal programma Wetty che abilita il terminale su HTTP e HTTPS.

Prerequisiti:

Dovresti avere l'ambiente GoLang (Go Programming Language) installato in Linux per eseguire GoTTY.

Come installare GoTTY nei sistemi Linux

Se disponi già di un ambiente GoLang funzionante, esegui il comando go get di seguito per installarlo:

go get github.com/yudai/gotty

Il comando sopra installerà il binario GoTTY nella tua variabile d'ambiente GOBIN, prova a verificare se è così:

ls $GOPATH/bin/

Come utilizzare GoTTY in Linux

Per eseguirlo, puoi utilizzare la variabile GOBIN env e comandare la funzione di completamento automatico come segue:

$GOBIN/gotty

Altrimenti, esegui GoTTY o qualsiasi altro programma Go senza digitare il percorso completo del file binario, aggiungi la variabile GOBIN a PATH nel file ~/.profile utilizzando il comando export di seguito :

export PATH="$PATH:$GOBIN"

Salva il file e chiudilo. Quindi procurati il file per applicare le modifiche di cui sopra:

source ~/.profile

La sintassi generale per eseguire i comandi GoTTY è:

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

Ora esegui GoTTY con qualsiasi comando come il comando df per visualizzare lo spazio e l'utilizzo delle partizioni del disco di sistema dal browser web:

gotty df -h

GoTTY avvierà un server web sulla porta 8080 per impostazione predefinita. Quindi apri l'URL: http://127.0.0.1:8080/ sul tuo browser web e vedrai il comando in esecuzione come se fosse in esecuzione sul tuo terminale:

Come personalizzare GoTTY in Linux

Puoi modificare le opzioni predefinite e il tuo terminale (hterm) nel file del profilo ~/.gotty, caricherà questo file per impostazione predefinita nel caso esista.

Questo è il file di personalizzazione principale letto dai comandi gotty, quindi crealo come segue:

touch ~/.gotty

E imposta i tuoi valori validi per le opzioni di configurazione (trova tutte le opzioni di configurazione qui) per personalizzare GoTTY, ad esempio:

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

Puoi impostare il tuo file index.html utilizzando l'opzione --index dalla riga di comando:

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

Come utilizzare le funzionalità di sicurezza in GoTTY

Poiché GoTTY non offre una sicurezza affidabile per impostazione predefinita, devi utilizzare manualmente alcune funzionalità di sicurezza spiegate di seguito.

Consenti ai client di eseguire comandi/digitare input nel terminale

Tieni presente che, per impostazione predefinita, GoTTY non consente ai client di digitare input nel TTY, ma abilita solo il ridimensionamento della finestra.

Tuttavia, puoi utilizzare l'opzione -w o --permit-write per consentire ai client di scrivere sul TTY, cosa non consigliata a causa delle minacce alla sicurezza del server.

Il seguente comando utilizzerà l'editor della riga di comando vi per aprire il file fossmint.txt per la modifica nel browser web:

gotty -w vi fossmint.txt

Di seguito è riportata l'interfaccia vi vista dal browser web (utilizzare qui i comandi vi come al solito):

Utilizza GoTTY con l'autenticazione di base (nome utente e password).

Prova ad attivare un meccanismo di autenticazione di base, in cui ai client verrà richiesto di inserire il nome utente e la password specificati per connettersi al server GoTTY.

Il comando seguente limiterà l'accesso del client utilizzando l'opzione -c per chiedere agli utenti le credenziali specificate (nome utente: test e password: @67890):

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

Devo generare un URL casuale

Un altro modo per limitare l'accesso al server è utilizzare l'opzione -r. Qui, GoTTY genererà un URL casuale in modo che solo gli utenti che conoscono l'URL possano accedere al server.

Utilizza anche l'opzione –title-format “GoTTY – {{ .Command }} ({{ .Hostname }})” per definire il titolo dell'interfaccia del browser web e il comando GLOVES viene utilizzato per mostrare le statistiche di monitoraggio del sistema :

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

Quanto segue è il risultato del comando precedente visto dall'interfaccia del browser web:

Utilizza GoTTY con SSL/TLS

Poiché per impostazione predefinita, tutte le connessioni tra il server e i client non sono crittografate, quando invii informazioni segrete tramite GoTTY come credenziali utente o qualsiasi altra informazione, devi utilizzare -t o - -tls opzione che abilita TLS/SSL nella sessione:

GoTTY leggerà per impostazione predefinita il file del certificato ~/.gotty.crt e il file della chiave ~/.gotty.key, quindi inizierà creando anche una certificazione autofirmata come file chiave utilizzando il comando openssl di seguito (rispondi alla domanda posta per generare il certificato e i file chiave):

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

Quindi utilizza GoTTY in modo sicuro con SSL/TLS abilitato come segue:

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

Condividi il tuo terminale con più clienti

Puoi utilizzare multiplexer terminali per condividere un singolo processo con più client, il seguente comando avvierà una nuova sessione tmux denominata gotty con il comando looks (assicurati di avere tmux installato):

gotty tmux new -A -s gotty glances 

Per leggere un file di configurazione diverso, utilizza l'opzione –config “/path/to/file” in questo modo:

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

Per visualizzare la versione GoTTY, esegui il comando:

gotty -v 

Visita il repository GitHub di GoTTY per trovare altri esempi di utilizzo: https://github.com/yudai/gotty

È tutto! L'hai provato? Come trovi GoTTY? Condividi i tuoi pensieri con noi tramite il modulo di feedback qui sotto.