Ein SSH-Tunnel leitet Datenverkehr verschlüsselt durch eine bestehende SSH-Verbindung. Damit lässt sich eine Verbindung zu einem Dienst herstellen, der sonst nicht erreichbar oder unverschlüsselt wäre — etwa eine Datenbank in einem internen Netz oder ein Webserver hinter einer Firewall. Die Anwendung selbst spricht weiter ihr eigenes Protokoll; die Daten reisen aber geschützt im SSH-Kanal (Port 22).
Die drei Tunnel-Richtungen
Lokale Weiterleitung (ssh -L) öffnet auf dem eigenen Rechner einen Port, der auf ein Ziel hinter dem SSH-Server zeigt: ssh -L 8080:interner-server:80 benutzer@bastion — dann ist der Dienst über http://localhost:8080 erreichbar. Entfernte Weiterleitung (ssh -R) macht einen lokalen Dienst auf dem entfernten Rechner erreichbar. Dynamische Weiterleitung (ssh -D 1080) startet einen SOCKS-Proxy, über den beliebige Ziele erreicht werden.
Wofür werden SSH-Tunnel genutzt?
- Verschlüsselte Verbindung zu internen Diensten (Datenbanken, Dashboards, Admin-Oberflächen)
- Sicherer Zugriff über eine Bastion (Sprungserver), ohne den Dienst ins Internet zu legen
- Temporärer SOCKS-Proxy für sicheres Surfen in unsicheren Netzen
- Verschlüsselung älterer, unverschlüsselter Protokolle (z.B. VNC)
Sicherheit und Abgrenzung
Die Portweiterleitung (Port Forwarding) im Router ist etwas anderes: Sie macht eingehende Verbindungen von außen an ein Gerät im Heimnetz verfügbar (DNAT). Ein SSH-Tunnel dagegen wird vom Client aus aufgebaut und nutzt die vorhandene SSH-Verschlüsselung — er ist die flexiblere und oft sicherere Alternative, weil kein zusätzlicher Port im Internet geöffnet wird. Tunneling setzt einen funktionierenden SSH-Key oder eine andere SSH-Authentifizierung voraus und lässt sich mit dem SSH-Agent bequemer bedienen. Verwandte Grundlagen: SSH und ssh, scp und rsync: Remote-Verbindungen und Datei-Transfer.