In dieser Anleitung erfahren Sie, wie Sie Ihre Remotedesktopverbindung (Remote Desktop Protokoll, RDP) über SSH verschlüsseln und authentisieren können.

Voraussetzungen

Als Voraussetzung benötigen Sie einen SSH-Server. Lassen Sie serverseitig nur die Option "PubkeyAuthentication" zu. Warum? Die rein passwortbasierte Authentifikation hängt zum einen von der individuellen Qualität jedes einzelnen Passworts, sowie von dessen Geheimhaltung ab. Letztere ist nicht nur durch Key-Logger gefährdet, die voraussetzen, dass ein Hardware- oder Software-Angriff erfolgreich auf ein System durchgeführt wurde, sondern in vielfältiger anderer Weise – etwa durch "Shoulder Surfing" in Verkehrsmitteln oder Internetcafés.

Auf Client-Seite benötigen Sie ein beliebiges SSH-Werkzeug. Wir demonstrieren das Vorgehen anhand des lizenzkostenfreien Werkzeugs "PuTTY".

Schlüsselgenerierung

Jeder Benutzer des Fernzugangs generiert ein kryptographisches Schlüsselpaar mit mindestens 2048 Bit (besser 4096 Bit) Schlüssellänge. Der öffentliche Schlüssel wird serverseitig hinterlegt. Der private Schlüssel wird mit einer starken Passphrase geschützt.

Zur Generierung des Schlüsselpaares kann "PuTTYgen" verwendet werden. Wählen Sie als Schlüsseltyp RSA, legen Sie die Schlüssellänge fest und starten Sie die Schlüsselgenerierung

Testen der SSH-Verbindung

Verweisen Sie zunächst unter Connection->SSH->Auth auf Ihren privaten Schlüssel. Hinterlegen Sie den öffentlichen Schlüssel auf Ihrem Server. Geben Sie in Putty den Zielserver ein und öffnen Sie die Verbindung.

Einrichten des RDP-Forwardings

Sobald die SSH-Verbindungen funktionieren, wird ein lokales Port-Forwarding auf den serverseitigen RDP-Dienst eingerichtet und getestet. Geben Sie unter Connection->SSH->Tunnels den lokalen Port, den zu tunnelnden Ziel-Port (3389 für RDP) und den Zielrechner (im Beispiel 192.168.0.1) ein.

Sie können Ihre Verbindungsdaten unter Session abspeichern.

Starten der RDP-Verbindung

Sie können nun über das Internet per RDP über SSH auf Ihren Rechner zugreifen. Öffnen Sie, nachdem die SSH-Verbindung aufgebaut wurde, eine RDP-Verbindung zu 127.0.0.1 und Ihrem lokalen Port (im Beispiel 127.0.0.1:5000). Wenn mehrere parallele RDP-Sitzungen möglich sein sollen, müssen sich die lokalen Ports unterscheiden oder unterschiedliche Loop-Back-Adressen genutzt werden (127.0.0.1, 127.0.0.2, ...). Die Kombination aus Adresse und Port muss eindeutig sein.

Sobald die RDP-Verbindungen getestet wird, wird der RDP-Dienst serverseitig auf die Loopback-Adresse beschränkt – ein Zugriff auf den RDP-Dienst ist dann nur noch durch den SSH-Tunnel möglich. Der RDP-Port kann in der Host-Firewall gesperrt werden.