GoTTY - Del din Linux-terminal (TTY) som en webapplikasjon
GoTTY er et enkelt GoLang-basert kommandolinjeverktøy som lar deg dele terminalen (TTY) som en nettapplikasjon. Det gjør kommandolinjeverktøy til webapplikasjoner.
Den bruker Chrome OS sin terminalemulator (hterm) for å kjøre en JavaScript-basert terminal på nettlesere. Og viktigere er det, GoTTY kjører en web-socket-server som i utgangspunktet overfører utdata fra TTY til klienter og mottar input fra klienter (det vil si hvis input fra klienter er tillatt) og videresender det til TTY.
Les også: Teleconsole – Del Linux-terminalen din med vennene dine
Arkitekturen (hterm + web-socket-ide) ble inspirert av Wetty-programmet som aktiverer terminal over HTTP og HTTPS.
Forutsetninger:
Du bør ha GoLang (Go Programming Language) miljø installert i Linux for å kjøre GoTTY.
Slik installerer du GoTTY i Linux-systemer
Hvis du allerede har et fungerende GoLang-miljø, kjør kommandoen go get nedenfor for å installere den:
go get github.com/yudai/gotty
Kommandoen ovenfor vil installere GoTTY-binæren i GOBIN-miljøvariabelen din, prøv å sjekke om det er tilfelle:
ls $GOPATH/bin/
Slik bruker du GoTTY i Linux
For å kjøre den kan du bruke GOBIN env-variabelen og funksjonen for automatisk fullføring av kommandoer som følger:
$GOBIN/gotty
Ellers, kjør GoTTY eller et annet Go-program uten å skrive inn hele banen til binæren, legg til GOBIN-variabelen din til PATH i ~/.profile
-filen ved å bruke eksport-kommandoen nedenfor :
export PATH="$PATH:$GOBIN"
Lagre filen og lukk den. Kilde deretter filen for å utføre endringene ovenfor:
source ~/.profile
Den generelle syntaksen for å kjøre GoTTY-kommandoer er:
Usage: gotty [options] <Linux command here> [<arguments...>]
Kjør nå GoTTY med en hvilken som helst kommando som df-kommandoen for å se plass og bruk av systemdiskpartisjoner fra nettleseren:
gotty df -h
GoTTY vil starte en nettserver på port 8080 som standard. Åpne deretter URLen: http://127.0.0.1:8080/
i nettleseren din, og du vil se kjørekommandoen som om den kjørte på terminalen din:
Hvordan tilpasse GoTTY i Linux
Du kan endre standardalternativer og terminalen din (hterm) i profilfilen ~/.gotty
, den vil laste denne filen som standard i tilfelle den eksisterer.
Dette er hovedtilpasningsfilen som leses av gode kommandoer, så lag den som følger:
touch ~/.gotty
Og angi dine egne gyldige verdier for konfigurasjonsalternativene (finn alle konfigurasjonsalternativene her) for å tilpasse GoTTY for eksempel:
// 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)"
}
Du kan angi din egen index.html-fil ved å bruke --index
-alternativet fra kommandolinjen:
gotty --index /path/to/index.html uptime
Slik bruker du sikkerhetsfunksjoner i GoTTY
Fordi GoTTY ikke tilbyr pålitelig sikkerhet som standard, må du manuelt bruke visse sikkerhetsfunksjoner forklart nedenfor.
Tillat klienter å kjøre kommandoer/skrive inn i terminal
Merk at GoTTY som standard ikke tillater klienter å skrive inn i TTY-en, den aktiverer bare vindustørrelse.
Du kan imidlertid bruke -w
eller --permit-write
alternativet for å la klienter skrive til TTY, noe som ikke anbefales på grunn av sikkerhetstrusler mot serveren.
Følgende kommando vil bruke vi kommandolinjeredigering for å åpne filen fossmint.txt for redigering i nettleseren:
gotty -w vi fossmint.txt
Nedenfor er vi-grensesnittet sett fra nettleseren (bruk vi-kommandoer her som vanlig):
Bruk GoTTY med grunnleggende (brukernavn og passord) autentisering
Prøv å aktivere en grunnleggende autentiseringsmekanisme, der klienter må skrive inn det angitte brukernavnet og passordet for å koble til GoTTY-serveren.
Kommandoen nedenfor vil begrense klienttilgang ved å bruke -c
-alternativet for å be brukere om spesifisert legitimasjon (brukernavn: test og passord: @67890):
gotty -w -p "9000" -c "test:@67890" glances
Gotty Generate Random URL
En annen måte å begrense tilgangen til serveren på er å bruke -r
-alternativet. Her vil GoTTY generere en tilfeldig URL slik at bare brukere som kjenner URLen kan få tilgang til serveren.
Bruk også –tittelformatet «GoTTY – {{ .Command }} ({{ .Vertsnavn }})»-alternativet for å definere nettleserens grensesnitttittel og blikk-kommandoen brukes til å vise systemovervåkingsstatistikk :
gotty -r --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances
Følgende er resultatet av kommandoen ovenfor sett fra nettlesergrensesnittet:
Bruk GoTTY med SSL/TLS
Fordi som standard er alle tilkoblinger mellom serveren og klientene ikke kryptert, når du sender hemmelig informasjon gjennom GoTTY som brukerlegitimasjon eller annen informasjon, må du bruke -t
eller - -tls
alternativ som aktiverer TLS/SSL på økten:
GoTTY vil som standard lese sertifikatfilen ~/.gotty.crt
og nøkkelfilen ~/.gotty.key
, start derfor med å opprette en selvsignert sertifisering også som nøkkelfil ved å bruke openssl-kommandoen nedenfor (svar på spørsmålet for å generere sertifikatet og nøkkelfilene):
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ~/.gotty.key -out ~/.gotty.crt
Bruk deretter GoTTY på en sikker måte med SSL/TLS aktivert som følger:
gotty -tr --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances
Del terminalen din med flere klienter
Du kan bruke terminalmultipleksere for å dele en enkelt prosess med flere klienter, følgende kommando vil starte en ny tmux-sesjon kalt gotty with glances-kommandoen (sørg for at du har tmux installert):
gotty tmux new -A -s gotty glances
For å lese en annen konfigurasjonsfil, bruk –config “/path/to/file”-alternativet slik:
gotty -tr --config "~/gotty_new_config" --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances
For å vise GoTTY-versjonen, kjør kommandoen:
gotty -v
Besøk GoTTY GitHub-depotet for å finne flere brukseksempler: https://github.com/yudai/gotty
Det er alt! Har du prøvd det? Hvordan finner du GoTTY? Del dine tanker med oss via tilbakemeldingsskjemaet nedenfor.