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.