Website-Suche

ttyd: Teile Dein Linux-Terminal sicher über das Web


ttyd ist ein leichtgewichtiges, Open-Source-Kommandozeilen-Tool, das es Ihnen ermöglicht, Ihre Linux-Terminal-Sitzung über einen Webbrowser zu teilen. Durch die Verwendung von WebSockets erlaubt ttyd Ihnen, remote mit dem Terminal zu interagieren, als wären Sie direkt auf der Maschine, was es ideal für Fernadministration, Teamzusammenarbeit oder Bildungsdemonstrationen macht.

Dieses Werkzeug umschließt eine Terminal-Anwendung (wie bash) und bietet eine einfache, webbasierte Schnittstelle, die von jedem modernen Browser aus zugänglich ist. Mit seiner einfachen Installation und anpassbaren Sicherheitsfunktionen wie Basis-Authentifizierung und SSL ist ttyd eine leistungsstarke Lösung, um Terminal-Sitzungen über das Web zuzugreifen und zu teilen.

Anwendungsfälle:

  • Fernzugriff auf ein Linux-System von jedem Gerät mit einem Browser.
  • Ermöglichen Sie mehreren Benutzern, mit demselben Terminal zu interagieren.
  • Demonstriere Befehle und Arbeitsabläufe in Echtzeit, nützlich für Unterricht oder Workshops.

Dieser Artikel wird sich mit der Installation, Konfiguration und Nutzung von ttyd auf einem Linux-basierten System befassen.

Installation von ttyd auf Linux

Der Prozess der Installation von ttyd auf einem Linux-System ist unkompliziert, er erfordert jedoch einige Abhängigkeiten. Unten sind die Installationsschritte für ein Debian-basiertes System (wie Ubuntu) aufgeführt. Der Prozess wird bei anderen Distributionen leicht unterschiedlich sein, aber die Kernschritte bleiben ähnlich.

Stellen Sie zunächst sicher, dass Ihr System die erforderlichen Build-Tools und Bibliotheken installiert hat.

sudo apt update
sudo apt install -y git cmake build-essential libjson-c-dev libwebsockets-dev

Als Nächstes klonen Sie das offizielle ttyd-Repository von GitHub:

git clone https://github.com/tsl0922/ttyd.git
cd ttyd

Sobald das Repository geklont ist, erstellen Sie ein Build-Verzeichnis, führen Sie cmake aus und kompilieren Sie den Quellcode:

mkdir build
cd build
cmake ..
make
sudo make install

Grundlegende Verwendung von ttyd in Linux

Nach der Installation kann ttyd direkt vom Terminal aus ausgeführt werden, indem ein Shell-Befehl als Argument übergeben wird.

ttyd bash

Dies wird einen Webserver auf dem Standardport (7681) starten und über eine Webschnittstelle unter der folgenden URL Zugriff auf eine Bash-Shell bereitstellen.

http://localhost:7681

Öffnen Sie diese Adresse in einem Webbrowser, und Sie werden ein interaktives Terminal sehen, in dem Sie Shell-Befehle ausführen können.

Anstatt bash zu starten, können Sie auch andere Befehle oder Anwendungen innerhalb des Terminals ausführen. Zum Beispiel können Sie top (ein Systemüberwachungstool) im Terminal ausführen:

ttyd top

Das Terminal über das Web teilen

Standardmäßig bindet sich ttyd an localhost, wodurch es nur vom lokalen Rechner aus zugänglich ist. Um entfernten Benutzern den Zugriff zu ermöglichen, müssen Sie ttyd an eine öffentliche oder private IP-Adresse binden.

ttyd an eine spezifische IP-Adresse binden

Sie können den Port und die Adresse angeben, an die sich ttyd binden soll:

ttyd -p 8080 bash

In diesem Fall wird ttyd auf Port 8080 lauschen. Wenn Sie von einem anderen Rechner im selben Netzwerk darauf zugreifen müssen, können Sie die lokale IP-Adresse des Rechners verwenden:

http://local-ip:8080

Um Ihre lokale IP-Adresse zu finden, verwenden Sie den folgenden ip-Befehl:

ip a

Wenn Sie ttyd über das Internet zugänglich machen müssen, stellen Sie sicher, dass Ihre UFW-Firewall eingehenden Datenverkehr auf dem gewählten Port zulässt, und leiten Sie den Port gegebenenfalls über Ihren Router weiter.

Sichern Sie Ihr ttyd Web-Terminal

Das Zugänglichmachen eines Terminals im Web kann erhebliche Sicherheitsrisiken mit sich bringen, wenn es nicht richtig konfiguriert ist. Unten sind einige grundlegende Sicherheitsmaßnahmen aufgeführt, die Sie beim Verwenden von ttyd ergreifen sollten:

1. Passwortschutz auf ttyd aktivieren

Standardmäßig erfordert ttyd keine Authentifizierung. Um eine Sicherheitsebene hinzuzufügen, verwenden Sie die -c-Option, um einen Benutzernamen und ein Passwort für den Zugriff anzugeben.

ttyd -p 8080 -c user:password bash

Dies wird die Benutzer nach den user- und password-Anmeldedaten fragen, bevor der Zugriff auf das Terminal gewährt wird.

2. SSL für ttyd aktivieren

Um die Kommunikation zwischen dem Client (Browser) und dem Server zu verschlüsseln, wird dringend empfohlen, SSL zu aktivieren. Sie können ttyd mit SSL unter Verwendung des --ssl-Flags ausführen. Allerdings benötigen Sie dafür gültige SSL-Zertifikate:

ttyd --ssl -p 443 bash

In diesem Fall müssten Sie Pfade zu Ihrem SSL-Zertifikat und privaten Schlüssel angeben (über die Optionen --ssl-cert und --ssl-key).

3. Begrenzen Sie die ttyd-Netzwerkexposition

Anstatt ttyd dem öffentlichen Internet auszusetzen, sollten Sie in Betracht ziehen, ein VPN zu verwenden oder einen Reverse-Proxy (wie Nginx) einzurichten, um zusätzliche Sicherheitsebenen hinzuzufügen.

Es wird empfohlen, ttyd auf einer privaten IP auszuführen oder den Zugriff mit Firewall-Regeln zu beschränken, für Umgebungen, in denen Sicherheit entscheidend ist.

Erweiterte Nutzung von ttyd

ttyd bietet mehrere Befehlszeilenoptionen zur Feinabstimmung seines Verhaltens. Einige der nützlichsten Optionen sind wie folgt:

  • -p <port> – Legt den Port fest, auf dem der Webserver lauschen wird.
  • -c <user:password> – Aktivieren Sie die Basis-Authentifizierung mit dem angegebenen Benutzernamen und Passwort.
  • --ssl – SSL/TLS für sichere Kommunikation aktivieren.
  • -t <terminal> – Setzen Sie terminalspezifische Einstellungen, wie Schriftgröße und Farbe.
Fazit

ttyd ist ein vielseitiges und effizientes Werkzeug zum Teilen von Terminal-Sitzungen über das Web, das für Fernadministration, Zusammenarbeit und Bildungszwecke genutzt werden kann, und es ist einfach einzurichten.

Es ist jedoch entscheidend, geeignete Sicherheitsmaßnahmen wie Authentifizierung und SSL-Verschlüsselung anzuwenden, wenn es in Produktionsumgebungen eingesetzt wird.