GoTTY - Aqsam it-Terminal Linux Tiegħek (TTY) bħala Applikazzjoni tal-Web


GoTTY hija għodda sempliċi tal-linja tal-kmand ibbażata fuq GoLang li tippermettilek taqsam it-terminal tiegħek (TTY) bħala applikazzjoni tal-web. Tibdel l-għodod tal-linja tal-kmand f'applikazzjonijiet tal-web.

Hija timpjega l-emulatur tat-terminal ta 'Chrome OS (hterm) biex tesegwixxi terminal ibbażat fuq JavaScript fuq web browsers. U importanti, GoTTY imexxi web socket server li bażikament jittrasferixxi l-output mit-TTY lill-klijenti u jirċievi input mill-klijenti (jiġifieri jekk input mill-klijenti huwa permess) u jgħaddih lit-TTY.

L-arkitettura tagħha (idea hterm + web socket) kienet ispirata mill-programm Wetty li jippermetti terminali fuq HTTP u HTTPS.

Għandu jkollok ambjent GoLang (Go Programming Language) installat fil-Linux biex tħaddem GoTTY.

Kif Tinstalla GoTTY fis-Sistemi Linux

Jekk diġà għandek ambjent GoLang li jaħdem, ħaddem il-kmand go get hawn taħt biex tinstallah:

# go get github.com/yudai/gotty

Il-kmand t'hawn fuq se jinstalla l-binarju GoTTY fil-varjabbli tal-ambjent GOBIN tiegħek, ipprova ċċekkja jekk dak huwiex il-każ:

# ls $GOPATH/bin/

Kif tuża GoTTY fil-Linux

Biex tħaddem, tista 'tuża l-varjabbli GOBIN env u l-karatteristika ta' tlestija awtomatika tal-kmand kif ġej:

# $GOBIN/gotty

Inkella, mexxi GoTTY jew kwalunkwe programm ieħor Go mingħajr ma ttajpja l-mogħdija sħiħa għall-binarju, żid il-varjabbli GOBIN tiegħek mal-PATH fil-fajl ~/.profile billi tuża l-kmand tal-esportazzjoni hawn taħt:

export PATH="$PATH:$GOBIN"

Issejvja l-fajl u agħlaqha. Imbagħad iġib il-fajl biex iwettaq il-bidliet hawn fuq:

# source ~/.profile

Is-sintassi ġenerali għat-tħaddim tal-kmandi GoTTY hija:

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

Issa mexxi GoTTY bi kwalunkwe kmand bħall-kmand df biex tara l-ispazju u l-użu tal-partizzjonijiet tad-disk tas-sistema mill-web browser:

# gotty df -h

GoTTY se jibda web server fil-port 8080 awtomatikament. Imbagħad iftaħ il-URL: http://127.0.0.1:8080/ fuq il-web browser tiegħek u tara l-kmand għaddej bħallikieku kien qed jaħdem fuq it-terminal tiegħek:

Kif Ippersonalizza GoTTY fil-Linux

Tista 'tbiddel l-għażliet default u t-terminal tiegħek (hterm) fil-fajl tal-profil ~/.gotty, se jgħabbi dan il-fajl awtomatikament f'każ li jeżisti.

Dan huwa l-fajl tal-personalizzazzjoni prinċipali moqri mill-kmandi gotty, għalhekk, oħloq kif ġej:

# touch ~/.gotty

U waqqaf il-valuri validi tiegħek stess għall-għażliet tal-konfigurazzjoni (sibu l-għażliet kollha tal-konfigurazzjoni hawn) biex tippersonalizza GoTTY pereżempju:

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

Tista' tissettja l-fajl index.html tiegħek stess billi tuża l-għażla --index mil-linja tal-kmand:

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

Kif tuża l-karatteristiċi tas-sigurtà f'GoTTY

Minħabba li GoTTY ma joffrix sigurtà affidabbli b'mod awtomatiku, għandek bżonn tuża manwalment ċerti karatteristiċi ta 'sigurtà spjegati hawn taħt.

Innota li, b'mod awtomatiku, GoTTY ma jippermettix lill-klijenti li jdaħħlu l-input fit-TTY, jippermetti biss id-daqs tat-tieqa.

Madankollu, tista' tuża l-għażla -w jew --permit-write biex tippermetti lill-klijenti jiktbu lit-TTY, li mhux rakkomandat minħabba theddid għas-sigurtà għas-server.

Il-kmand li ġej se juża l-editur tal-linja tal-kmand vi biex jiftaħ il-fajl fossmint.txt għall-editjar fil-web browser:

# gotty -w vi fossmint.txt

Hawn taħt hawn l-interface vi kif tidher mill-web browser (uża l-kmandi vi hawn bħas-soltu):

Ipprova tattiva mekkaniżmu bażiku ta 'awtentikazzjoni, fejn il-klijenti jkunu meħtieġa li jdaħħlu l-isem tal-utent u l-password speċifikati biex jikkonnettjaw mas-server GoTTY.

Il-kmand hawn taħt se jirrestrinġi l-aċċess tal-klijent billi juża l-għażla -c biex jitlob lill-utenti għal kredenzjali speċifikati (username: test u password: @67890):

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

Mod ieħor kif tirrestrinġi l-aċċess għas-server huwa billi tuża l-għażla -r. Hawnhekk, GoTTY se jiġġenera URL każwali sabiex l-utenti li jafu l-URL biss ikunu jistgħu jiksbu aċċess għas-server.

Uża wkoll l-għażla –title-format “GoTTY – {{ .Command }} ({{ .Hostname }})” biex tiddefinixxi t-titlu tal-interface tal-web browsers u l-kmand tal-ħarsiet jintuża biex turi stats ta’ monitoraġġ tas-sistema:

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

Dan li ġej huwa riżultat tal-kmand ta 'hawn fuq kif jidher mill-interface tal-web browser:

Minħabba li b'mod awtomatiku, il-konnessjonijiet kollha bejn is-server u l-klijenti mhumiex encrypted, meta tibgħat informazzjoni sigrieta permezz ta' GoTTY bħal kredenzjali tal-utent jew kwalunkwe informazzjoni oħra, trid tuża l--t jew - -tls għażla li tippermetti TLS/SSL fis-sessjoni:

GoTTY awtomatikament jaqra l-fajl taċ-ċertifikat ~/.gotty.crt u l-fajl taċ-ċavetta ~/.gotty.key, għalhekk, tibda billi toħloq ċertifikazzjoni ffirmata minnha nfisha wkoll bħala l-fajl ewlieni bl-użu tal-kmand openssl hawn taħt (wieġeb il-mistoqsija mitluba sabiex tiġġenera ċ-ċert u l-fajls ewlenin):

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

Imbagħad uża GoTTY b'mod sikur b'SSL/TLS attivat kif ġej:

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

Tista' tagħmel użu mill-kmand tal-ħarsiet (kun żgur li għandek tmux installat):

# gotty tmux new -A -s gotty glances 

Biex taqra fajl ta' konfigurazzjoni differenti, uża l-għażla –config “/path/to/file” hekk:

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

Biex turi l-verżjoni GoTTY, mexxi l-kmand:

# gotty -v 

Żur ir-repożitorju ta’ GoTTY GitHub biex issib aktar eżempji ta’ użu: https://github.com/yudai/gotty

Dak kollox! Ippruvajtu? Kif issib GoTTY? Aqsam il-ħsibijiet tiegħek magħna permezz tal-formola ta' feedback hawn taħt.