OpenSSH unter Linux nutzen

Port-Forwarding auf entfernte Rechner

Um die Übersicht zu behalten, verwenden wir auch in den folgenden Beispielen immer die Original-Portnummer des zu tunnelnden Dienstes plus 20000.

Das Port-Forwarding funktioniert nicht nur auf Ports am SSH-Server, sondern auf beliebige Rechner. Dazu ist einfach die Adresse des endgültigen Ziel-Servers anzugeben:

ssh benutzer@sshrechner -L lokaler_port:zielrechner:entfernter_port

Damit lässt sich beispielsweise ein Intranet-Webserver erreichen, der nicht unbedingt auf dem SSH-Server laufen muss. Über das Kommando

ssh benutzer@sshrechner -L 20080:intranetserver:80

und den Aufruf des URL http://localhost:20080 werden die Daten aus dem Intranet verschlüsselt übertragen. Dabei ist zu beachten, dass nur der Weg zwischen SSH-Client und -Server gesichert ist, die Strecke vom SSH-Server zum Intranet-Server jedoch nicht mehr. Mittels Port-Forwarding lassen sich fast alle TCP-basierenden Dienste tunneln, wie beispielsweise HTTP, SMTP, POP3, IMAP oder NNTP. FTP funktioniert dagegen nicht, dafür dient der bei OpenSSH mitgelieferte SFTP-Server.

Das Remote Forwarding funktioniert analog zum lokalen Weiterleiten, allerdings genau andersherum. Eine Verbindung kommt auf einem Port am SSH-Server an und wird von dort durch den Tunnel zum Client geschickt. Das Kommando dafür lautet:

ssh benutzer@sshrechner -R entfernter_port:sshclient:lokaler_port

OpenSSH bietet eine Vielzahl an Kommandozeilen-Optionen. Der einzugebende Befehl kann also sehr schnell recht unübersichtlich werden. Mit kssh gibt es für den KDE-Desktop ein komfortables Tool, bei dem sich die einzelnen Optionen per Mausklick einstellen lassen. Ein Klick auf "Connect" startet dann ssh mit den gewählten Parametern.