Entfernte Steuerung mit SSH

Bisher wurde beschrieben, wie SSH grundlegend funktioniert und wie man sich mit dessen Hilfe auf einem entfernten Computersystem anmelden kann. SSH bietet aber noch viele Einstellungsmöglichkeiten, die man bei der Ausführung aktivieren kann. Die nützlichsten dieser Funktionalitäten werden im Folgenden beschrieben und lassen sich beliebig kombinieren.

Benutzerauswahl

Wenn SSH ohne jegliche Parameter aufgerufen wird, versucht es sich mit dem Benutzernamen anzumelden, unter dem es ausgeführt wurde. Doch oft kommt es vor, dass auf dem entfernten Computersystem nicht dasselbe Benutzerkonto vorliegt, wie auf dem lokalen System. SSH ermöglicht dem Benutzer daher, bei der Ausführung zu entscheiden, unter welchem Benutzernamen er sich auf dem entfernten Computersystem anmelden möchte. Dies geschieht mit Hilfe des Parameters -l, dem als Wert der zu benutzende Benutzername übergeben wird.

ssh -l Benutzername Name_des_SSH_Servers

In der Praxis findet die Schreibweise mit dem Parameter -l jedoch nur noch selten Verwendung, da die folgende Schreibweise schneller von der Hand geht.

ssh Benutzername@Name_des_SSH_Servers

Der Verbosemodus

Wie bei jeder Software, können auch beim Einsatz von SSH Probleme auftreten. Doch woran kann es liegen, wenn sich SSH nicht zu einem entfernten SSH-Server verbinden möchte? Um solchen Fehlerursachen auf den Grund zu gehen, kann man SSH im so genannten Verbosemodus ausführen.

ssh -v Name_des_SSH_Servers

Der Quietmodus

In der Praxis kommt SSH häufig in Automatisierungsskripten zum Einsatz. Hier ist es oft erwünscht, dass SSH keinerlei Statusinformationen auf der Konsole ausgibt. Aus diesem Grund kann SSH in einem sogenannten Quietmodus gestartet werden. Um diese Option zu aktivieren, muss SSH mit dem Schalter -q gestartet werden.

ssh -q Name_des_SSH_Servers

Datenkompression aktivieren

Mitunter ist es erwünscht, den Datentransfer, der über das Netzwerk geschickt wird, auf ein Minimum zu reduzieren. SSH bietet daher die Möglichkeit, alle Daten vor dem Versenden zu komprimieren. Dazu nutzt SSH den gzip Kompressionsmechanismus. Es ist jedoch zu beachten, dass der Vorteil des geringeren Datentransfers zu Lasten der Systemperformanz geht, da der Prozessor ständig damit beschäftigt ist, die Daten vor dem Versenden zu komprimieren. Um die Datenkompression zu aktivieren muss SSH mit dem Schalter -C gestartet werden.

ssh -C Name_des_SSH_Servers

Benutzung eines Authentifizierungsschlüssels

In einem vorangegangenem Kapitel (Kapitel 5.2.2) wurde beschrieben, wie man mit SSH eine Public-Key-Infrastruktur aufbauen kann und dass man sich mit Hilfe eines SSH Agenten an einem Computersystem anmelden kann. Um sich auch ohne den Einsatz eines SSH Agenten mit Hilfe seines privaten Schlüssels authentifizieren zu können, gibt es den Parameter -i. Mit ihm ist es möglich, SSH mitzuteilen, dass es für die aktuelle Verbindung einen bestimmten Schlüssel zur Authentifizierung benutzen soll. Die Syntax ist Folgende:

ssh -i Pfad_zur_Schluesseldatei Name_des_SSH_Servers

Auswahl des Netzwerkinterfaces

Mittlerweile kommt es immer häufiger vor, dass sich mehrere Netzwerkkarten in Computersystemen befinden und diese mit bestimmten Netzwerken verbunden sind. Mit der Option -b kann man SSH anweisen, sich an eine bestimmte Adresse eines Netzwerkinterfaces zu binden und anschließend über dieses zu kommunizieren.

ssh -b IP_Adresse_der_Netzwerkkarte Name_des_SSH_Servers

Tunneln von TCP/IP Verbindungen

Eine der nützlichsten Funktionalitäten von SSH ist die Möglichkeit, TCP/IP Verbindungen jeglicher Art mit SSH zu verschlüsseln und von einem Computersystem zu einem anderen durchzurouten - oder zu tunneln.

Nehmen wir an, dass ein Benutzer auf einem entfernten Rechner eine Datenbank betreibt, die auf dem Port 3306 Anfragen entgegen nimmt. Der Benutzer möchte nun Datenbankabfragen an die entfernte Datenbank schicken. Da es sich um sehr sensible Daten handelt, legt er großen Wert darauf, dass die Kommunikation verschlüsselt stattfindet. Mit Hilfe des folgenden Kommandos, kann er den Port 3306 des entfernten Computersystems auf seinen Rechner über eine von SSH gesicherte Verbindung durchtunneln.

ssh -L 3306:localhost:3306 Datenbankrechner

Die Syntax das Befehls ist folgende:

ssh -L Port_des_lokalen_Systems:Lokales_System:Remote_Port Entferntes_System

X-Forwarding

Oft ist es erforderlich, Programme mit einer graphischen Oberfläche auf einem entfernten Computersystem aufzurufen und sich die Ausgabe lokal anzeigen zu lassen. SSH bietet für genau diesen Anwendungsfall ein sehr komfortables Feature. Startet man eine SSH-Verbindung mit der Option -X, wird SSH angewiesen die graphischen Oberflächen der Programme des entfernten Computersystems auf das lokale System zu projezieren.

Möchte man also einen Mozilla Firefox Webbrowser, der sich auf einem entfernten Computersystem befindet, starten und sich die Ausgabe - also die graphische Oberfläche - auf dem lokalen Rechner anzeigen lassen, muss lediglich eine Verbindung zu dem entfernten Computersystem mit der Option -X aufgebaut und der entsprechende Startbefehl für den Browser aufgerufen werden.

ssh -X Name_des_SSH_Servers

firefox

Abbildung 7.2: Starten eines Firefox-Browsers auf einem entfernten Computersystem. Die Anzeige erfolgt durch X-Forwarding auf dem lokalen Rechner.
Image abbildung_xforwarding