GoTTY - Delite svoj terminal Linux (TTY) kot spletno aplikacijo


GoTTY je preprosto orodje ukazne vrstice, ki temelji na GoLangu in vam omogoča skupno rabo terminala (TTY) kot spletne aplikacije. Orodja ukazne vrstice spremeni v spletne aplikacije.

Uporablja terminalski emulator Chrome OS (hterm) za izvajanje terminala, ki temelji na JavaScript, v spletnih brskalnikih. In kar je pomembno, GoTTY zažene strežnik spletnih vtičnic, ki v bistvu prenese izhod iz TTY na odjemalce in prejme vhod od odjemalcev (to je, če je vnos odjemalcev dovoljen) in ga posreduje TTY.

Njegova arhitektura (ideja hterm + spletna vtičnica) je bila navdihnjena s programom Wetty, ki omogoča terminale prek HTTP in HTTPS.

Za zagon GoTTY bi morali imeti v Linuxu nameščeno okolje GoLang (Go Programming Language).

Kako namestiti GoTTY v sisteme Linux

Če že imate delujoče okolje GoLang, zaženite spodnji ukaz go get, da ga namestite:

# go get github.com/yudai/gotty

Zgornji ukaz bo namestil binarno datoteko GoTTY v spremenljivko okolja GOBIN, poskusite preveriti, ali je temu tako:

# ls $GOPATH/bin/

Kako uporabljati GoTTY v Linuxu

Če ga želite zagnati, lahko uporabite spremenljivko GOBIN env in funkcijo samodejnega dokončanja ukaza, kot sledi:

# $GOBIN/gotty

V nasprotnem primeru zaženite GoTTY ali kateri koli drug program Go, ne da bi vnesli celotno pot do binarnega sistema, dodajte spremenljivko GOBIN v PATH v datoteki ~/.profile z uporabo spodnjega ukaza za izvoz:

export PATH="$PATH:$GOBIN"

Datoteko shranite in zaprite. Nato datoteko poiščite tako, da izvede zgoraj navedene spremembe:

# source ~/.profile

Splošna skladnja za izvajanje ukazov GoTTY je:

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

Zdaj zaženite GoTTY s katerim koli ukazom, kot je ukaz df, da si ogledate prostor in uporabo sistemskih particij na disku iz spletnega brskalnika:

# gotty df -h

GoTTY bo privzeto zagnal spletni strežnik na vratih 8080. Nato v spletnem brskalniku odprite URL: http://127.0.0.1:8080/ in zagnali boste ukaz za zagon, kot da bi bil na vašem terminalu:

Kako prilagoditi GoTTY v Linuxu

Privzete možnosti in svoj terminal (hterm) lahko spremenite v datoteki profila ~/.gotty . Ta datoteka se bo privzeto naložila, če obstaja.

To je glavna datoteka za prilagajanje, ki jo berejo ukazi gotty, zato jo ustvarite na naslednji način:

# touch ~/.gotty

In nastavite svoje veljavne vrednosti za konfiguracijske možnosti (tukaj najdete vse možnosti konfiguracije), da prilagodite GoTTY, na primer:

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

Svojo datoteko index.html lahko nastavite z možnostjo --index v ukazni vrstici:

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

Kako uporabljati varnostne funkcije v GoTTY

Ker GoTTY privzeto ne ponuja zanesljive varnosti, morate ročno uporabiti nekatere varnostne funkcije, razložene spodaj.

Upoštevajte, da GoTTY privzeto ne dovoli odjemalcem, da vnesejo vnos v TTY, ampak omogoča samo spreminjanje velikosti okna.

Lahko pa uporabite možnost -w ali --permit-write , da strankam omogočite pisanje v TTY, kar zaradi varnostnih groženj strežniku ni priporočljivo.

Naslednji ukaz bo z urejevalnikom ukazne vrstice vi odprl datoteko fossmint.txt za urejanje v spletnem brskalniku:

# gotty -w vi fossmint.txt

Spodaj je vmesnik vi, kot je razviden iz spletnega brskalnika (tukaj uporabite ukaze vi kot običajno):

Poskusite aktivirati osnovni mehanizem preverjanja pristnosti, kjer bodo odjemalci morali vnesti podano uporabniško ime in geslo za povezavo s strežnikom GoTTY.

Spodnji ukaz bo omejil dostop odjemalca z uporabo možnosti -c in uporabnike pozval k navedenim poverilnicam (uporabniško ime: test in geslo: @ 67890):

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

Drug način omejevanja dostopa do strežnika je z uporabo možnosti -r . Tukaj bo GoTTY ustvaril naključni URL, tako da bodo do strežnika lahko dostopali le uporabniki, ki URL poznajo.

Uporabite tudi možnost –title-format “GoTTY - {{.Command}} ({{.Hostname}})” za določitev naslova vmesnika spletnih ukazov in ukazov Pogled, ki se uporablja za prikaz statističnih podatkov o nadzoru sistema:

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

Sledi rezultat zgornjega ukaza, kot je razvidno iz vmesnika spletnega brskalnika:

Ker privzeto vse povezave med strežnikom in odjemalci niso šifrirane, ko morate prek GoTTY pošiljati tajne podatke, kot so uporabniške poverilnice ali katere koli druge informacije, morate uporabiti -t ali - -tls možnost, ki omogoča TLS/SSL na seji:

GoTTY bo privzeto prebral datoteko potrdila ~/.gotty.crt in datoteko ključa ~/.gotty.key , zato začnite z ustvarjanjem samopodpisanega potrdila. kot datoteko ključa z uporabo spodnjega ukaza openssl (odgovorite na zastavljeno vprašanje, da ustvarite cert in datoteke s ključi):

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

Nato uporabite GoTTY na varen način z omogočenim SSL/TLS, kot sledi:

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

Uporabite lahko ukaz glances (preverite, ali imate nameščen tmux):

# gotty tmux new -A -s gotty glances 

Če želite prebrati drugo konfiguracijsko datoteko, uporabite možnost –config “/ path/to/file” tako:

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

Če želite prikazati različico GoTTY, zaženite ukaz:

# gotty -v 

Obiščite repozitorij GoTTY GitHub in poiščite več primerov uporabe: https://github.com/yudai/gotty

To je vse! Ste že poskusili? Kako najti GoTTY? Delite svoje misli z nami preko spodnjega obrazca za povratne informacije.