GoTTY - Podijelite svoj Linux terminal (TTY) kao web aplikaciju


GoTTY je jednostavan GoLang alat za komandnu liniju koji vam omogućava da dijelite svoj terminal (TTY) kao web aplikaciju. Pretvara alate komandne linije u web aplikacije.

Koristi emulator terminala Chrome OS-a (hterm) za izvršavanje terminala zasnovanog na JavaScriptu na web pretraživačima. I što je važno, GoTTY pokreće web socket server koji u osnovi prenosi izlaz sa TTY klijentima i prima ulaz od klijenata (tj. ako je unos od klijenata dozvoljen) i prosljeđuje ga na TTY.

Pročitajte također: Telekonzola – podijelite svoj Linux terminal sa prijateljima

Njegova arhitektura (hterm + web socket ideja) inspirisana je Wetty programom koji omogućava terminal preko HTTP i HTTPS.

Preduvjeti:

Trebali biste imati GoLang (Go Programming Language) okruženje instalirano u Linuxu da biste pokrenuli GoTTY.

Kako instalirati GoTTY u Linux sisteme

Ako već imate radno okruženje GoLang, pokrenite naredbu go get u nastavku da ga instalirate:

go get github.com/yudai/gotty

Gornja naredba će instalirati binarnu datoteku GoTTY u vašu varijablu okruženja GOBIN, pokušajte provjeriti da li je to slučaj:

ls $GOPATH/bin/

Kako koristiti GoTTY u Linuxu

Da biste ga pokrenuli, možete koristiti varijablu GOBIN env i funkciju automatskog dovršavanja naredbi na sljedeći način:

$GOBIN/gotty

U suprotnom, pokrenite GoTTY ili bilo koji drugi Go program bez upisivanja pune putanje do binarnog fajla, dodajte svoju GOBIN varijablu u PATH u datoteci ~/.profile koristeći naredbu export ispod :

export PATH="$PATH:$GOBIN"

Sačuvajte datoteku i zatvorite je. Zatim izvorni fajl da izvrši gorenavedene promjene:

source ~/.profile

Opća sintaksa za pokretanje GoTTY komandi je:

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

Sada pokrenite GoTTY sa bilo kojom komandom kao što je naredba df da vidite prostor particija sistemskog diska i upotrebu iz web pretraživača:

gotty df -h

GoTTY će po defaultu pokrenuti web server na portu 8080. Zatim otvorite URL: http://127.0.0.1:8080/ na vašem web pregledniku i vidjet ćete naredbu za pokretanje kao da je pokrenuta na vašem terminalu:

Kako prilagoditi GoTTY u Linuxu

Možete promijeniti zadane opcije i svoj terminal (hterm) u datoteci profila ~/.gotty, on će učitati ovu datoteku po defaultu u slučaju da postoji.

Ovo je glavna datoteka za prilagođavanje koju čitaju gotty komande, pa je kreirajte na sljedeći način:

touch ~/.gotty

I postavite vlastite važeće vrijednosti za opcije konfiguracije (ovdje pronađite sve opcije konfiguracije) da prilagodite GoTTY na primjer:

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

Možete postaviti svoj index.html fajl koristeći --index opciju iz komandne linije:

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

Kako koristiti sigurnosne funkcije u GoTTY

Budući da GoTTY ne nudi pouzdanu sigurnost prema zadanim postavkama, morate ručno koristiti određene sigurnosne funkcije objašnjene u nastavku.

Dozvolite klijentima da pokreću naredbe/unos tipa u terminalu

Imajte na umu da, prema zadanim postavkama, GoTTY ne dozvoljava klijentima da unose unos u TTY, već samo omogućava promjenu veličine prozora.

Međutim, možete koristiti opciju -w ili --permit-write da dozvolite klijentima da pišu na TTY, što se ne preporučuje zbog sigurnosnih prijetnji serveru.

Sljedeća naredba će koristiti uređivač komandne linije vi za otvaranje datoteke fossmint.txt za uređivanje u web pregledniku:

gotty -w vi fossmint.txt

Ispod je vi interfejs kako se vidi iz web pretraživača (koristite vi komande ovdje kao i obično):

Koristite GoTTY sa osnovnom (korisničko ime i lozinka) autentifikacijom

Pokušajte aktivirati osnovni mehanizam autentifikacije, gdje će se od klijenata tražiti da unesu navedeno korisničko ime i lozinku za povezivanje na GoTTY server.

Naredba u nastavku će ograničiti pristup klijentu korištenjem opcije -c da od korisnika traži određene vjerodajnice (korisničko ime: test i lozinka: @67890):

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

Gotty Generate Random URL

Drugi način ograničavanja pristupa serveru je korištenje opcije -r. Ovdje će GoTTY generirati nasumični URL tako da samo korisnici koji znaju URL mogu dobiti pristup serveru.

Također koristite opciju –format naslova “GoTTY – {{ .Command }} ({{ .Hostname }})” da definirate naslov interfejsa web pretraživača, a komanda pogledi se koristi za prikaz statistike nadzora sistema :

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

Ovo je rezultat gornje naredbe kao što se vidi iz sučelja web pretraživača:

Koristite GoTTY sa SSL/TLS

Budući da prema zadanim postavkama sve veze između servera i klijenata nisu šifrirane, kada šaljete tajne informacije putem GoTTY-a, kao što su korisnički akreditivi ili bilo koja druga informacija, morate koristiti -t ili - -tls opcija koja omogućava TLS/SSL na sesiji:

GoTTY će prema zadanim postavkama pročitati datoteku certifikata ~/.gotty.crt i ključnu datoteku ~/.gotty.key, stoga počnite kreiranjem samopotpisanog certifikata kao ključnu datoteku koristeći naredbu openssl u nastavku (odgovorite na postavljeno pitanje kako biste generirali cert i datoteke ključeva):

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

Zatim koristite GoTTY na siguran način sa SSL/TLS omogućenim na sljedeći način:

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

Podijelite svoj terminal s više klijenata

Možete koristiti terminalske multipleksere za dijeljenje jednog procesa sa više klijenata, sljedeća naredba će pokrenuti novu tmux sesiju pod nazivom gotty with glances naredba (provjerite da li imate instaliran tmux):

gotty tmux new -A -s gotty glances 

Da pročitate drugu konfiguracijsku datoteku, koristite opciju –config “/path/to/file” na sljedeći način:

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

Za prikaz GoTTY verzije, pokrenite naredbu:

gotty -v 

Posjetite GoTTY GitHub spremište da pronađete više primjera korištenja: https://github.com/yudai/gotty

To je sve! Jeste li isprobali? Kako pronalazite GoTTY? Podijelite svoje mišljenje s nama putem obrasca za povratne informacije ispod.