GoTTY - Partajați terminalul dvs. Linux (TTY) ca aplicație web


GoTTY este un instrument simplu de linie de comandă bazat pe GoLang, care vă permite să vă partajați terminalul (TTY) ca aplicație web. Transformă instrumentele din linia de comandă în aplicații web.

Utilizează emulatorul de terminal al sistemului de operare Chrome (hterm) pentru a executa un terminal bazat pe JavaScript pe un browser web. Și, important, GoTTY rulează un server web socket care practic transferă ieșirea de la TTY către clienți și primește input de la clienți (adică dacă este permisă intrarea de la clienți) și o transmite către TTY.

Citiți și: Teleconsola – Partajați terminalul Linux cu prietenii dvs

Arhitectura sa (idee hterm + socket web) a fost inspirată de programul Wetty care permite terminalul prin HTTP și HTTPS.

Cerințe preliminare:

Ar trebui să aveți mediul GoLang (Go Programming Language) instalat în Linux pentru a rula GoTTY.

Cum se instalează GoTTY în sistemele Linux

Dacă aveți deja un mediu GoLang funcțional, rulați comanda go get de mai jos pentru a-l instala:

go get github.com/yudai/gotty

Comanda de mai sus va instala binarul GoTTY în variabila de mediu GOBIN, încercați să verificați dacă acesta este cazul:

ls $GOPATH/bin/

Cum să utilizați GoTTY în Linux

Pentru a-l rula, puteți utiliza variabila GOBIN env și funcția de completare automată a comenzii, după cum urmează:

$GOBIN/gotty

În caz contrar, rulați GoTTY sau orice alt program Go fără a tasta calea completă către binar, adăugați variabila GOBIN la PATH în fișierul ~/.profile folosind comanda export de mai jos :

export PATH="$PATH:$GOBIN"

Salvați fișierul și închideți-l. Apoi sursa fișierul pentru a efectua modificările de mai sus:

source ~/.profile

Sintaxa generală pentru rularea comenzilor GoTTY este:

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

Acum rulați GoTTY cu orice comandă, cum ar fi comanda df, pentru a vedea spațiul și utilizarea partițiilor de disc ale sistemului din browser web:

gotty df -h

GoTTY va porni un server web la portul 8080 în mod implicit. Apoi deschideți adresa URL: http://127.0.0.1:8080/ în browserul dvs. web și veți vedea comanda care rulează ca și cum ar fi rulat pe terminalul dvs.:

Cum să personalizați GoTTY în Linux

Puteți modifica opțiunile implicite și terminalul dvs. (hterm) în fișierul de profil ~/.gotty, acesta va încărca acest fișier în mod implicit în cazul în care există.

Acesta este fișierul principal de personalizare citit de comenzile gotty, așa că creați-l după cum urmează:

touch ~/.gotty

Și setați propriile valori valide pentru opțiunile de configurare (găsiți toate opțiunile de configurare aici) pentru a personaliza GoTTY, de exemplu:

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

Puteți seta propriul fișier index.html folosind opțiunea --index din linia de comandă:

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

Cum să utilizați funcțiile de securitate în GoTTY

Deoarece GoTTY nu oferă în mod prestabilit securitate fiabilă, trebuie să utilizați manual anumite funcții de securitate explicate mai jos.

Permiteți clienților să ruleze comenzi/introducerea de tip în terminal

Rețineți că, în mod implicit, GoTTY nu permite clienților să introducă în TTY, ci doar permite redimensionarea ferestrei.

Cu toate acestea, puteți utiliza opțiunea -w sau --permit-write pentru a permite clienților să scrie pe TTY, ceea ce nu este recomandat din cauza amenințărilor de securitate la adresa serverului.

Următoarea comandă va folosi editorul de linie de comandă vi pentru a deschide fișierul fossmint.txt pentru editare în browserul web:

gotty -w vi fossmint.txt

Mai jos este interfața vi așa cum se vede din browserul web (utilizați comenzile vi aici ca de obicei):

Utilizați GoTTY cu autentificarea de bază (nume de utilizator și parolă).

Încercați să activați un mecanism de autentificare de bază, în care clienților li se va cere să introducă numele de utilizator și parola specificate pentru a se conecta la serverul GoTTY.

Comanda de mai jos va restricționa accesul clientului folosind opțiunea -c pentru a cere utilizatorilor acreditările specificate (nume de utilizator: test și parolă: @67890):

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

Gotty Generați URL aleatoriu

O altă modalitate de a restricționa accesul la server este utilizarea opțiunii -r. Aici, GoTTY va genera o adresă URL aleatorie, astfel încât numai utilizatorii care cunosc adresa URL pot avea acces la server.

De asemenea, utilizați opțiunea –titlu-format „GoTTY – {{ .Command }} ({{ .Hostname }})” pentru a defini titlul interfeței browser-ului web și comanda Glances este utilizată pentru a afișa statisticile de monitorizare a sistemului :

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

Următorul este rezultatul comenzii de mai sus, așa cum se vede din interfața browserului web:

Utilizați GoTTY cu SSL/TLS

Deoarece în mod implicit, toate conexiunile dintre server și clienți nu sunt criptate, atunci când trimiteți informații secrete prin GoTTY, cum ar fi acreditările utilizatorului sau orice alte informații, trebuie să utilizați -t sau - -tls opțiunea care activează TLS/SSL în sesiune:

GoTTY va citi în mod implicit fișierul certificat ~/.gotty.crt și fișierul cheie ~/.gotty.key, prin urmare, începeți prin a crea și o certificare autosemnată. ca fișier cheie utilizând comanda openssl de mai jos (răspundeți la întrebarea adresată pentru a genera fișierele certificat și cheie):

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

Apoi utilizați GoTTY într-un mod sigur, cu SSL/TLS activat, după cum urmează:

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

Partajați terminalul cu mai mulți clienți

Puteți utiliza multiplexoarele terminale pentru partajarea unui singur proces cu mai mulți clienți, următoarea comandă va porni o nouă sesiune tmux numită comanda gotty with glances (asigurați-vă că aveți instalat tmux):

gotty tmux new -A -s gotty glances 

Pentru a citi un alt fișier de configurare, utilizați opțiunea –config „/path/to/file” astfel:

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

Pentru a afișa versiunea GoTTY, rulați comanda:

gotty -v 

Vizitați depozitul GoTTY GitHub pentru a găsi mai multe exemple de utilizare: https://github.com/yudai/gotty

Asta e tot! L-ai încercat? Cum găsești GoTTY? Împărtășiți-vă gândurile cu noi prin intermediul formularului de feedback de mai jos.