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.