Mit einem SSH-Tunnel kann man Netzwerkverbindungen sicher durch einen verschlüsselten SSH-Kanal leiten. Das ist nützlich, um Dienste auf entfernten Servern abzusichern oder Firewalls zu umgehen.
Beim lokalen Port-Forwarding wird ein lokaler Port auf einen Port eines Zielservers weitergeleitet.
ssh -L <lokaler_port>:<zielserver>:<zielport> <benutzer>@<ssh-server>
Beispiel: Zugriff auf eine entfernte MySQL-Datenbank (Port 3306) über einen SSH-Tunnel:
ssh -L 3306:localhost:3306 user@remote-server
Danach kann man lokal auf `localhost:3306` zugreifen, als wäre die Datenbank lokal.
Nach Aufbau des Tunnels kann man sich mit dem gewünschten Dienst verbinden, z.B.:
mysql -h 127.0.0.1 -P 3306 -u dbuser -p
ssh -L 8080:intranet.example.com:80 user@ssh-gateway
Danach im Browser: http://localhost:8080
Auch umgekehrt möglich:
ssh -R <remote_port>:<zielserver>:<zielport> <benutzer>@<ssh-server>
man ssh