GoTTY - Deelt Äre Linux Terminal (TTY) als Webapplikatioun


GoTTY ass en einfacht GoLang-baséiert Kommandozeilinstrument dat Iech erlaabt Ären Terminal (TTY) als Webapplikatioun ze deelen. Et verwandelt Kommandozeil Tools a Webapplikatiounen.

Et benotzt Chrome OS 'Terminalemulator (hterm) fir e JavaScript-baséiert Terminal op engem Webbrowser auszeféieren. A Wichteg ass, GoTTY bedreift e Web Socket Server deen am Fong d'Output vum TTY u Clienten iwwerdréit an Input vu Clienten kritt (dat ass wann Input vu Clienten erlaabt ass) a weidergeleet op den TTY.

Seng Architektur (hterm + Web Socket Iddi) gouf vum Wetty Programm inspiréiert deen den Terminal iwwer HTTP an HTTPS erméiglecht.

Dir sollt GoLang (Go Programming Language) Ëmfeld op Linux installéiert hunn fir GoTTY ze lafen.

Wéi installéiere ech GoTTY a Linux Systemer

Wann Dir schonn e funktionnéiert GoLang Ëmfeld hutt, fuert de go get Kommando hei ënnen fir et z'installéieren:

# go get github.com/yudai/gotty

De Kommando uewendriwwer installéiert de GoTTY Binär an Ärer GOBIN Ëmfeld Variabel, probéiert ze kontrolléieren ob dat de Fall ass:

# ls $GOPATH/bin/

Wéi benotzt Dir GoTTY a Linux

Fir et auszeféieren, kënnt Dir d'GOBIN env Variabel benotzen an d'Auto-Completion Feature wéi folgend benotzen:

# $GOBIN/gotty

Soss, lafen GoTTY oder all aner Go Programm ouni de ganze Wee op d'Binär ze tippen, füügt Är GOBIN Variabel op PATH an der ~/.profile Datei mat dem Exportkommando hei drënner:

export PATH="$PATH:$GOBIN"

Späichert d'Datei a maach se zou. Dann Quell d'Datei fir d'Ännerungen hei uewen auszeféieren:

# source ~/.profile

Déi allgemeng Syntax fir GoTTY Kommandoen ze lafen ass:

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

Fuert elo GoTTY mat all Kommando wéi dem df Kommando fir System Disk Partitionen Plaz an Notzung vum Webbrowser ze gesinn:

# gotty df -h

GoTTY start e Webserver um Port 8080 par défaut. Dann öffnen d'URL op: http://127.0.0.1:8080/ an Ärem Webbrowser an Dir gesitt de lafende Kommando wéi wann et op Ärem Terminal leeft:

Wéi Customize GoTTY a Linux

Dir kënnt d'Standardoptiounen an Ären Terminal (hterm) an der Profildatei ~/.gotty änneren, et lued dës Datei als Standard am Fall wou se existéiert.

Dëst ass d'Haaptpersonaliséierungsdatei gelies vu Gotty Kommandoen, also erstellt se wéi follegt:

# touch ~/.gotty

A set Är eege gëlteg Wäerter fir d'Konfiguratiounsoptiounen (fannt all Configuratiounsoptiounen hei) fir GoTTY z.

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

Dir kënnt Är eege index.html Datei mat der --index Optioun vun der Kommandozeil setzen:

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

Wéi benotzen ech Sécherheetsfeatures a GoTTY

Well GoTTY keng zouverlässeg Sécherheet als Standard ubitt, musst Dir verschidde Sécherheetsfeatures manuell benotzen, déi hei ënnen erkläert ginn.

Notéiert datt, Par défaut, GoTTY erlaabt Clienten net Input an den TTY ze tippen, et erméiglecht nëmmen d'Gréisst vun der Fënster.

Wéi och ëmmer, Dir kënnt d'Optioun -w oder --permit-write benotzen fir Clienten ze erlaben op den TTY ze schreiwen, wat net recommandéiert ass wéinst Sécherheetsbedrohungen fir de Server.

De folgende Kommando benotzt vi Command Line Editor fir d'Datei fossmint.txt opzemaachen fir am Webbrowser z'änneren:

# gotty -w vi fossmint.txt

Drënner ass de vi Interface wéi aus dem Webbrowser gesi ginn (benotzt vi Kommandoen hei wéi gewinnt):

Probéiert e Basis Authentifikatiounsmechanismus z'aktivéieren, wou d'Cliente verlaangt sinn de spezifizéierte Benotzernumm a Passwuert aginn fir mat dem GoTTY Server ze verbannen.

De Kommando hei drënner beschränkt de Client Zougang mat der -c Optioun fir Benotzer fir spezifizéiert Umeldungsinformatiounen ze froen (Benotzernumm: Test a Passwuert: @67890):

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

Eng aner Manéier fir den Zougang zum Server ze beschränken ass d'Optioun -r ze benotzen. Hei generéiert GoTTY eng zoufälleg URL sou datt nëmmen Benotzer déi d'URL kennen Zougang zum Server kréien.

Benotzt och d'–title-format GoTTY - {{ .Command }} ({{ .Hostname }}) Optioun fir de Webbrowser Interface Titel ze definéieren an de Bléck Kommando gëtt benotzt fir System Iwwerwachungsstatistiken ze weisen:

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

Déi folgend ass d'Resultat vum Kommando hei uewen wéi aus dem Webbrowser-Interface gesi ginn:

Well Par défaut sinn all Verbindungen tëscht dem Server a Clienten net verschlësselte, wann Dir geheim Informatioun iwwer GoTTY schéckt wéi Benotzer Umeldungsinformatiounen oder all aner Informatioun, musst Dir de -t oder - benotzen -tls Optioun déi TLS/SSL op der Sessioun aktivéiert:

GoTTY liest als Standard d'Zertifikatdatei ~/.gotty.crt an d'Schlësseldatei ~/.gotty.key, also fänke mat engem selbst ënnerschriwwenen Zertifizéierung un. als Schlësseldatei mat dem openssl Kommando hei drënner (Äntwert op d'Fro gefrot fir d'Zert a Schlësseldateien ze generéieren):

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

Dann benotzt GoTTY op eng sécher Manéier mat SSL/TLS aktivéiert wéi follegt:

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

Dir kënnt e Bléck Kommando benotzen (vergewëssert Iech datt Dir tmux installéiert hutt):

# gotty tmux new -A -s gotty glances 

Fir eng aner Configuratiounsdatei ze liesen, benotzt d'-config /path/to/file Optioun esou:

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

Fir d'GoTTY Versioun ze weisen, fuert de Kommando:

# gotty -v 

Besicht de GoTTY GitHub Repository fir méi Benotzungsbeispiller ze fannen: https://github.com/yudai/gotty

Dat ass alles! Hutt Dir et probéiert? Wéi fannt Dir GoTTY? Deelt Är Gedanken mat eis iwwer de Feedbackformular hei ënnen.