Website-Suche

GoTTY – Teilen Sie Ihr Linux-Terminal (TTY) als Webanwendung


GoTTY ist ein einfaches GoLang-basiertes Befehlszeilentool, mit dem Sie Ihr Terminal (TTY) als Webanwendung teilen können. Es verwandelt Befehlszeilentools in Webanwendungen.

Es verwendet den Terminalemulator (hterm) von Chrome OS, um ein JavaScript-basiertes Terminal in einem Webbrowser auszuführen. Und was wichtig ist: GoTTY betreibt einen Web-Socket-Server, der grundsätzlich die Ausgabe von TTY an Clients überträgt und Eingaben von Clients empfängt (sofern Eingaben von Clients zulässig sind) und diese weiterleitet zum TTY.

Lesen Sie auch: Teleconsole – Teilen Sie Ihr Linux-Terminal mit Ihren Freunden

Seine Architektur (hterm + Web-Socket-Idee) wurde vom Wetty-Programm inspiriert, das Terminals über HTTP und HTTPS ermöglicht.

Voraussetzungen:

Sie sollten die GoLang-Umgebung (Go Programming Language) unter Linux installiert haben, um GoTTY ausführen zu können.

So installieren Sie GoTTY in Linux-Systemen

Wenn Sie bereits über eine funktionierende GoLang-Umgebung verfügen, führen Sie den folgenden Befehl go get aus, um sie zu installieren:

go get github.com/yudai/gotty

Der obige Befehl installiert die Binärdatei GoTTY in Ihrer Umgebungsvariablen GOBIN. Versuchen Sie zu überprüfen, ob dies der Fall ist:

ls $GOPATH/bin/

So verwenden Sie GoTTY unter Linux

Um es auszuführen, können Sie die Variable GOBIN env und die Funktion zur automatischen Vervollständigung des Befehls wie folgt verwenden:

$GOBIN/gotty

Andernfalls führen Sie GoTTY oder ein anderes Go-Programm aus, ohne den vollständigen Pfad zur Binärdatei einzugeben, und fügen Sie Ihre GOBIN-Variable zu PATH in der Datei ~/.profile hinzu, indem Sie den Befehl export unten verwenden :

export PATH="$PATH:$GOBIN"

Speichern Sie die Datei und schließen Sie sie. Geben Sie dann die Datei als Quelle ein, um die oben genannten Änderungen vorzunehmen:

source ~/.profile

Die allgemeine Syntax zum Ausführen von GoTTY-Befehlen lautet:

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

Führen Sie nun GoTTY mit einem beliebigen Befehl wie dem Befehl df aus, um den Speicherplatz und die Nutzung der Systemfestplattenpartitionen über den Webbrowser anzuzeigen:

gotty df -h

GoTTY startet standardmäßig einen Webserver am Port 8080. Öffnen Sie dann die URL: http://127.0.0.1:8080/ in Ihrem Webbrowser und Sie sehen den ausgeführten Befehl, als würde er auf Ihrem Terminal ausgeführt:

So passen Sie GoTTY unter Linux an

Sie können die Standardoptionen und Ihr Terminal (hterm) in der Profildatei ~/.gotty ändern. Diese Datei wird standardmäßig geladen, falls sie vorhanden ist.

Dies ist die Hauptanpassungsdatei, die von Gotty-Befehlen gelesen wird. Erstellen Sie sie daher wie folgt:

touch ~/.gotty

Und legen Sie Ihre eigenen gültigen Werte für die Konfigurationsoptionen fest (alle Konfigurationsoptionen finden Sie hier), um GoTTY anzupassen, zum Beispiel:

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

Sie können Ihre eigene index.html-Datei mit der Option --index in der Befehlszeile festlegen:

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

So verwenden Sie Sicherheitsfunktionen in GoTTY

Da GoTTY standardmäßig keine zuverlässige Sicherheit bietet, müssen Sie bestimmte unten erläuterte Sicherheitsfunktionen manuell verwenden.

Erlauben Sie Clients, Befehle auszuführen/Eingaben im Terminal einzugeben

Beachten Sie, dass GoTTY Clients standardmäßig nicht erlaubt, Eingaben in das TTY einzugeben, sondern nur die Größenänderung des Fensters ermöglicht.

Sie können jedoch die Option -w oder --permit-write verwenden, um Clients das Schreiben in das TTY zu ermöglichen, was aufgrund von Sicherheitsbedrohungen für den Server nicht empfohlen wird.

Mit dem folgenden Befehl wird der vi-Befehlszeileneditor verwendet, um die Datei fossmint.txt zur Bearbeitung im Webbrowser zu öffnen:

gotty -w vi fossmint.txt

Unten sehen Sie die vi-Schnittstelle, wie sie vom Webbrowser aus gesehen wird (verwenden Sie hier wie gewohnt vi-Befehle):

Verwenden Sie GoTTY mit einfacher Authentifizierung (Benutzername und Passwort).

Versuchen Sie, einen grundlegenden Authentifizierungsmechanismus zu aktivieren, bei dem Clients aufgefordert werden, den angegebenen Benutzernamen und das angegebene Kennwort einzugeben, um eine Verbindung zum GoTTY-Server herzustellen.

Der folgende Befehl schränkt den Clientzugriff mithilfe der Option -c ein, um Benutzer nach bestimmten Anmeldeinformationen zu fragen (Benutzername: test und Passwort: @67890):

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

Gotty generiert zufällige URL

Eine weitere Möglichkeit, den Zugriff auf den Server einzuschränken, ist die Verwendung der Option -r. Hier generiert GoTTY eine zufällige URL, sodass nur Benutzer, die die URL kennen, Zugriff auf den Server erhalten.

Verwenden Sie außerdem die Option –title-format „GoTTY – {{ .Command }} ({{ .Hostname }})“, um den Schnittstellentitel des Webbrowsers zu definieren, und der Befehl „glances“ wird zum Anzeigen von Systemüberwachungsstatistiken verwendet :

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

Das folgende Ergebnis des obigen Befehls ist auf der Webbrowser-Oberfläche zu sehen:

Verwenden Sie GoTTY mit SSL/TLS

Da standardmäßig alle Verbindungen zwischen dem Server und den Clients nicht verschlüsselt sind, müssen Sie beim Senden geheimer Informationen über GoTTY, wie z. B. Benutzeranmeldeinformationen oder andere Informationen, den Code -t oder - verwenden. -tls-Option, die TLS/SSL für die Sitzung aktiviert:

GoTTY liest standardmäßig die Zertifikatsdatei ~/.gotty.crt und die Schlüsseldatei ~/.gotty.key. Erstellen Sie daher zunächst auch eine selbstsignierte Zertifizierung als Schlüsseldatei mit dem Befehl openssl unten (beantworten Sie die gestellte Frage, um die Zertifikat- und Schlüsseldateien zu generieren):

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

Dann verwenden Sie GoTTY auf sichere Weise mit aktiviertem SSL/TLS wie folgt:

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

Teilen Sie Ihr Terminal mit mehreren Clients

Sie können Terminal-Multiplexer verwenden, um einen einzelnen Prozess mit mehreren Clients zu teilen. Der folgende Befehl startet eine neue tmux-Sitzung namens gotty mit dem Befehl „glances“ (stellen Sie sicher, dass Sie tmux installiert haben):

gotty tmux new -A -s gotty glances 

Um eine andere Konfigurationsdatei zu lesen, verwenden Sie die Option –config „/path/to/file“ wie folgt:

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

Um die GoTTY-Version anzuzeigen, führen Sie den folgenden Befehl aus:

gotty -v 

Besuchen Sie das GoTTY-GitHub-Repository, um weitere Anwendungsbeispiele zu finden: https://github.com/yudai/gotty

Das ist alles! Hast du es ausprobiert? Wie findet man GoTTY? Teilen Sie uns Ihre Gedanken über das unten stehende Feedback-Formular mit.