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.