GoTTY – bendrinkite savo Linux terminalą (TTY) kaip žiniatinklio programą


GoTTY yra paprastas GoLang pagrįstas komandų eilutės įrankis, leidžiantis bendrinti terminalą (TTY) kaip žiniatinklio programą. Komandinės eilutės įrankius paverčia žiniatinklio programomis.

Jame naudojamas „Chrome“ OS terminalo emuliatorius (hterm), kad žiniatinklio naršyklėse paleisti „JavaScript“ pagrįstą terminalą. Ir, svarbiausia, GoTTY valdo žiniatinklio lizdo serverį, kuris iš esmės perduoda išvestį iš TTY klientams ir gauna įvestį iš klientų (ty jei leidžiama įvestis iš klientų) ir ją persiunčia. į TTY.

Taip pat skaitykite: Teleconsole – bendrinkite savo Linux terminalą su draugais

Jo architektūra (hterm + žiniatinklio lizdo idėja) buvo įkvėpta Wetty programos, kuri įgalina terminalą per HTTP ir HTTPS.

Būtinos sąlygos:

Turėtumėte turėti „GoLang“ („Go Programming Language“) aplinką, įdiegtą „Linux“, kad paleistumėte „GoTTY“.

Kaip įdiegti GoTTY Linux sistemose

Jei jau turite veikiančią „GoLang“ aplinką, paleiskite toliau pateiktą komandą go get, kad ją įdiegtumėte:

go get github.com/yudai/gotty

Aukščiau pateikta komanda įdiegs GoTTY dvejetainį failą GOBIN aplinkos kintamajame, pabandykite patikrinti, ar taip:

ls $GOPATH/bin/

Kaip naudoti „GoTTY“ sistemoje „Linux“.

Norėdami jį paleisti, galite naudoti kintamąjį GOBIN env ir komandų automatinio užbaigimo funkciją, kaip nurodyta toliau:

$GOBIN/gotty

Kitu atveju paleiskite GoTTY ar bet kurią kitą Go programą neįvesdami viso dvejetainio kelio, pridėkite savo GOBIN kintamąjį prie PATH faile ~/.profile naudodami toliau pateiktą komandą export :

export PATH="$PATH:$GOBIN"

Išsaugokite failą ir uždarykite jį. Tada gaukite failą, kad atliktumėte aukščiau nurodytus pakeitimus:

source ~/.profile

Bendra GoTTY komandų paleidimo sintaksė yra tokia:

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

Dabar paleiskite GoTTY su bet kuria komanda, pvz., komanda df, kad peržiūrėtumėte sistemos disko skaidinių vietą ir naudojimą žiniatinklio naršyklėje:

gotty df -h

Pagal numatytuosius nustatymus „GoTTY“ paleis žiniatinklio serverį prie 8080 prievado. Tada atidarykite URL: http://127.0.0.1:8080/ savo žiniatinklio naršyklėje ir pamatysite vykdomą komandą taip, tarsi ji būtų paleista jūsų terminale:

Kaip tinkinti „GoTTY“ sistemoje „Linux“.

Galite pakeisti numatytąsias parinktis ir terminalą (hterm) profilio faile ~/.gotty. Jis įkels šį failą pagal numatytuosius nustatymus, jei toks yra.

Tai yra pagrindinis tinkinimo failas, kurį skaito gotty komandos, todėl sukurkite jį taip:

touch ~/.gotty

Ir nustatykite savo galiojančias konfigūracijos parinkčių reikšmes (čia rasite visas konfigūracijos parinktis), kad tinkintumėte GoTTY, pavyzdžiui:

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

Galite nustatyti savo index.html failą naudodami komandų eilutės parinktį --index:

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

Kaip naudoti saugos funkcijas GoTTY

Kadangi GoTTY pagal numatytuosius nustatymus nesiūlo patikimos saugos, turite rankiniu būdu naudoti tam tikras toliau paaiškintas saugos funkcijas.

Leisti klientams vykdyti komandas/tipo įvestį terminale

Atminkite, kad pagal numatytuosius nustatymus GoTTY neleidžia klientams įvesti įvesties į TTY, ji įgalina tik lango dydžio keitimą.

Tačiau galite naudoti parinktį -w arba --permit-write, kad klientai galėtų rašyti į TTY, o tai nerekomenduojama dėl serverio saugumo grėsmių.

Ši komanda naudos komandų eilutės redagavimo priemonę „vi“, kad atidarytų failą fossmint.txt, kad būtų galima redaguoti žiniatinklio naršyklėje:

gotty -w vi fossmint.txt

Žemiau yra vi sąsaja, matoma iš žiniatinklio naršyklės (čia kaip įprastai naudokite vi komandas):

Naudokite GoTTY su pagrindiniu (vartotojo vardo ir slaptažodžio) autentifikavimu

Pabandykite suaktyvinti pagrindinį autentifikavimo mechanizmą, kai klientai turės įvesti nurodytą vartotojo vardą ir slaptažodį, kad prisijungtų prie GoTTY serverio.

Toliau pateikta komanda apribos kliento prieigą naudojant -c parinktį, kad naudotojų būtų prašoma nurodyti nurodytus kredencialus (naudotojo vardas: testas ir slaptažodis: @67890):

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

„Gotty“ generuoti atsitiktinį URL

Kitas būdas apriboti prieigą prie serverio yra parinkties -r naudojimas. Čia GoTTY sugeneruos atsitiktinį URL, kad tik vartotojai, žinantys URL, galėtų pasiekti serverį.

Taip pat naudokite parinktį –pavadinimo formatas „GoTTY – {{ .Command }} ({{ .Hostname }})“, kad apibrėžtumėte žiniatinklio naršyklės sąsajos pavadinimą ir komanda „glances“ naudojama sistemos stebėjimo statistikai rodyti. :

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

Tai yra aukščiau pateiktos komandos rezultatas, kaip matyti iš žiniatinklio naršyklės sąsajos:

Naudokite GoTTY su SSL/TLS

Kadangi pagal numatytuosius nustatymus visi ryšiai tarp serverio ir klientų nėra užšifruoti, kai siunčiate slaptą informaciją per GoTTY, pvz., vartotojo kredencialus ar bet kokią kitą informaciją, turite naudoti -t arba - -tls parinktis, kuri sesijoje įgalina TLS/SSL:

GoTTY pagal numatytuosius nustatymus skaitys sertifikato failą ~/.gotty.crt ir rakto failą ~/.gotty.key, todėl taip pat pradėkite sukurdami savarankiškai pasirašytą sertifikatą kaip rakto failą naudodami toliau pateiktą komandą openssl (atsakykite į užduotą klausimą, kad sugeneruotumėte sertifikato ir rakto failus):

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

Tada saugiai naudokite GoTTY su įjungtu SSL/TLS taip:

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

Bendrinkite savo terminalą su keliais klientais

Galite naudoti terminalo multiplekserius, kad galėtumėte bendrinti vieną procesą su keliais klientais, ši komanda pradės naują tmux sesiją pavadinimu gotty with glances komanda (įsitikinkite, kad įdiegėte tmux):

gotty tmux new -A -s gotty glances 

Norėdami perskaityti kitą konfigūracijos failą, naudokite parinktį –config „/path/to/file“, kaip nurodyta toliau.

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

Norėdami parodyti GoTTY versiją, paleiskite komandą:

gotty -v 

Norėdami rasti daugiau naudojimo pavyzdžių, apsilankykite „GoTTY GitHub“ saugykloje: https://github.com/yudai/gotty

Tai viskas! Ar išbandėte? Kaip rasti GoTTY? Pasidalykite savo mintimis su mumis naudodami toliau pateiktą atsiliepimų formą.