GoTTY - Del din Linux Terminal (TTY) som en webapplikation
GoTTY er et simpelt GoLang-baseret kommandolinjeværktøj, der giver dig mulighed for at dele din terminal (TTY) som en webapplikation. Det gør kommandolinjeværktøjer til webapplikationer.
Det anvender Chrome OS 'terminalemulator (hterm) til at udføre en JavaScript-baseret terminal på en webbrowser. Og vigtigst af alt kører GoTTY en websocket-server, der grundlæggende overfører output fra TTY til klienter og modtager input fra klienter (det vil sige, hvis input fra klienter er tilladt) og videresender det til TTY.
Dens arkitektur (hterm + websocket idé) var inspireret af Wetty program, som giver terminal via HTTP og HTTPS.
Du skal have GoLang (Go Programming Language) miljø installeret i Linux for at køre GoTTY.
Sådan installeres GoTTY i Linux-systemer
Hvis du allerede har et fungerende GoLang-miljø, skal du køre kommandoen go get nedenfor for at installere det:
# go get github.com/yudai/gotty
Kommandoen ovenfor installerer GoTTY-binærfilen i din GOBIN-miljøvariabel, prøv at kontrollere, om det er tilfældet:
# ls $GOPATH/bin/
Sådan bruges GoTTY i Linux
For at køre det kan du bruge GOBIN env-variablen og kommandofunktionen til automatisk udfyldelse som følger:
# $GOBIN/gotty
Ellers skal du køre GoTTY eller ethvert andet Go-program uden at indtaste den fulde sti til binærfilen, tilføj din GOBIN-variabel til PATH i filen ~/.profile
ved hjælp af nedenstående eksportkommando:
export PATH="$PATH:$GOBIN"
Gem filen, og luk den. Kild derefter filen for at foretage ovenstående ændringer:
# source ~/.profile
Den generelle syntaks til kørsel af GoTTY-kommandoer er:
Usage: gotty [options] <Linux command here> [<arguments...>]
Kør nu GoTTY med en hvilken som helst kommando såsom df-kommandoen for at se systemdiskpartitioner plads og brug fra webbrowseren:
# gotty df -h
GoTTY starter som standard en webserver i port 8080. Åbn derefter URL: http://127.0.0.1:8080/
på din webbrowser, og du vil se den kørende kommando, som om den kørte på din terminal:
Sådan tilpasses GoTTY i Linux
Du kan ændre standardindstillinger og din terminal (hterm) i profilfilen ~/.gotty
, den indlæser denne fil som standard, hvis den findes.
Dette er den primære tilpasningsfil, der læses af gode kommandoer, så lav den som følger:
# touch ~/.gotty
Og indstil dine egne gyldige værdier for konfigurationsindstillingerne (find alle konfigurationsindstillinger her) for at 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 indstille din egen index.html-fil ved hjælp af indstillingen --index
fra kommandolinjen:
# gotty --index /path/to/index.html uptime
Sådan bruges sikkerhedsfunktioner i GoTTY
Da GoTTY som standard ikke tilbyder pålidelig sikkerhed, skal du manuelt bruge visse sikkerhedsfunktioner, der er forklaret nedenfor.
Bemærk, at GoTTY som standard ikke tillader klienter at indtaste input i TTY, det muliggør kun størrelsen på vinduet.
Du kan dog bruge indstillingen -w
eller - permit-skriv
til at give klienter mulighed for at skrive til TTY, hvilket ikke anbefales på grund af sikkerhedstrusler mod serveren.
Den følgende kommando bruger vi kommandolinjeditor til at åbne filen fossmint.txt til redigering i webbrowseren:
# gotty -w vi fossmint.txt
Nedenfor er vi-grænsefladen set fra webbrowseren (brug vi-kommandoer her som normalt):
Prøv at aktivere en grundlæggende godkendelsesmekanisme, hvor klienter skal indtaste det angivne brugernavn og adgangskode for at oprette forbindelse til GoTTY-serveren.
Kommandoen nedenfor begrænser klientadgang ved hjælp af indstillingen -c
til at bede brugerne om angivne legitimationsoplysninger (brugernavn: test og adgangskode: @ 67890):
# gotty -w -p "9000" -c "test:@67890" glances
En anden måde at begrænse adgangen til serveren på er ved hjælp af indstillingen -r
. Her vil GoTTY generere en tilfældig URL, så kun brugere, der kender URL'en, kan få adgang til serveren.
Brug også –title-format “GoTTY - {{.Command}} ({{.Hostname}})” til at definere webbrowserens interface-titel og blik-kommando bruges til at vise systemovervågningsstatistikker:
# gotty -r --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances
Følgende er resultatet af kommandoen ovenfor set fra webbrowsergrænsefladen:
Fordi som standard alle forbindelser mellem serveren og klienter ikke er krypteret, når du sender hemmelige oplysninger gennem GoTTY såsom brugerlegitimationsoplysninger eller andre oplysninger, skal du bruge -t
eller - -tls
mulighed, der aktiverer TLS/SSL på sessionen:
GoTTY læser som standard certifikatfilen ~/.gotty.crt
og nøglefilen ~/.gotty.key
, start derfor også med at oprette en selvsigneret certificering som nøglefilen ved hjælp af openssl-kommandoen nedenfor (besvar det stillede spørgsmål for at generere cert- og nøglefilerne):
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ~/.gotty.key -out ~/.gotty.crt
Brug derefter GoTTY på en sikker måde med SSL/TLS aktiveret som følger:
# gotty -tr --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances
Du kan bruge kommandoen blik (sørg for at du har tmux installeret):
# gotty tmux new -A -s gotty glances
For at læse en anden konfigurationsfil skal du bruge –config “/ sti/til/fil” -indstillingen som sådan:
# gotty -tr --config "~/gotty_new_config" --title-format "GoTTY - {{ .Command }} ({{ .Hostname }})" glances
For at få vist GoTTY-versionen skal du køre kommandoen:
# gotty -v
Besøg GoTTY GitHub-arkivet for at finde flere eksempler på brug: https://github.com/yudai/gotty
Det er alt! Har du prøvet det? Hvordan finder du GoTTY? Del dine tanker med os via feedbackformularen nedenfor.