Benutzer-Werkzeuge

Webseiten-Werkzeuge


thoschwiki:anwendungen:tmate

tmate

tmate ist ein Kombination aus einer Client-Software und einem Server-Dienst zum Teilen von Terminalsitzungen. Es wird daher auch als Teamviewer für das Terminal bezeichnet.

Software
Produkthomepage tmate
GitHub tmate-io/tmate
Plattformen Linux, macOS, FreeBSD, openBSD
Linux-Paketierung DEB, RPM, TAR
Lizenz ???
Preis kostenlos
weitere Informationen im Wiki
keine

Funktionsweise

Auf dem Zielrechner wird mit dem Befehl tmate eine Sitzung eröffnet. tmate baut dann eine Verbindung zum tmate-Server1) auf und gibt den ssh-Aufruf für die Verbindung in der Form ssh PMhmes4XeKQyBR2JtvnQt6BJw@nyc1.tmate.io aus. Das generierte Token gilt nur für die aktuelle Sitzung.

Auf dem zweiten Rechner wird dann mit dem Befehl eine ssh--Verbindung zum tmate-Server aufgebaut, über die dann auf das Terminal des Zielrechners zugegriffen werden kann. Spezielle Software wird auf dem Rechner nicht benötigt.

Es ist auch möglich, mit mehreren Rechnern gleichzeitig auf den Zielrechner zuzugreifen.

Während der Sitzung sind per Default Eingaben auf allen beteiligten Rechnern möglich. Die Eingaben des jeweils anderen Nutzers werden in Echtzeit angezeigt und auf dem Zielrechner verarbeitet.

Für den Verbindungsaufbau benötigt der Zielrechner zwar über eine Internetverbindung, jedoch muss dieser nicht aus dem Internet direkt erreichbar sein. Der tmate-Server dient als von Proxy für Zugriffe auf den Zielrechner.

Neben der der Verbindungsinformation für die ssh-Session wird beim Start auch einer URL in der Form https://tmate.io/t/PMhmes4XeKQyBR2JtvnQt6BJw für den Zugriff über ein Web-Frontend ausgegeben.

Mit Kenntnis der Zugangsdaten ist der direkte Zugriff auf die Terminalsitzung möglich. Eine zusätzliche Zugangssicherung besteht nicht. Sofern Unbefugte Kenntnis erhalten, können sie in der laufenden Sitzung Befehle mit den Rechten des Benutzers, der tmate gestartet hat, ausführen bzw. nach einem sudo durch den berechtigten Benutzer ggf. auch Zugriff mit Administratorrechten erlangen.

Die Sitzungsdaten sollten daher nur über einen gesicherten Seitenkanal übertragen werden.

Neben den Verbindungsinformationen für den schreibenden Zugriff wird auch Satz für den nur-lesenden Zugriff generiert. Diese haben ein abweichendes Token, dem zusätzlich ein ro- vorangestellt ist. Wird eine Verbindung mit diesen read-only Credentials aufgebaut, können die Terminalausgaben gelesen, aber keine Eingaben getätigt werden. Gemischte Sessions mit schreibenden und nur-lesenden Clients sind möglich.

Es ist möglich tmate im sogenannten Foreground Mode zu starten, in dem es seine Server-Funktion startet und nur die log-Ausgaben an stdout sendet.2) Zusammen mit den sogenannten Named Session ist damit ein Remote Zugriff auf den Zielrechner möglich. Dies bringt jedoch Sicherheitprobleme. Auf die Ausführungen auf der Projektseite wird hierzu verwiesen.

Weiterhin gibt es auch die Möglichkeit eigene tmate-Server zu betreiben.

Installation

Es werden jeweils plattformspezifische Installationspakete angeboten. Unter macOS erfolgt die Installation mit Homebrew.

Quellen

1)
per default *.tmate.io
2)
Ich verstehe nicht, warum eine im Hintergrund laufende Server-Funktion als Foreground Mode bezeichnet wird…
thoschwiki/anwendungen/tmate.txt · Zuletzt geändert: 06.04.2021 16:51 von thosch