[linux-l] Tunnelbau mit SSH
Lutz Willek
lutz.willek at belug.de
Fr Okt 14 13:45:30 CEST 2011
Am 14.10.2011 11:21, schrieb Andreas Schott:
> Zugang zum IPfire:
> ssh -p222 -X -L 54321:localhost:54321 meinserver.dyndns.org
> Dann Zugriff per SSH auf Windowsrechner:
>
> ssh -X -L 54321:192.168.1.10:3389 install at 192.168.1.10
> In der sshd_config sind aktiviert:
Deine ~./ssh/config, nicht die Serverconfig. Ich nehme an Du hast keine.
Schlau machen kannst Du dich mit "man 5 ssh_config", hier online:
http://www.openbsd.org/cgi-bin/man.cgi?query=ssh_config
Also, Dein Ziel ist ja einen Port von Rechner 192.168.1.10 (windows)
irgendwie zu Dir zu tunneln, Du hast aber keinen direkten Zugriff.
Fangen wir ganz einfach an und bauen das Stück für Stück aus.
Ausgangszustand, erst mal ohne Portweiterleitung:
lokal:~$ ssh -p222 -X meinserver.dyndns.org
--> das vereinfachen wir. Lege Dir auf Rechner "lokal" eine
ssh-Konfiguration an:
lokal:~$ cat ~/.ssh/config
host meinserver
hostname meinserver.dyndns.org
user Hier_Username_Eintragen
ForwardX11 yes
Port 222
Ab sofort reicht aus:
lokal:~$ ssh meinserver
Das nächste ist die Portweiterleitung. Ich nehme mal an Du möchtest
Remotedesktop vom Windows-Rechner zu Dir holen, also den Port 3389 von
192.168.1.10 haben.
Die Kommandozeile dazu wäre komplett:
lokal:~$ ssh -p222 -X -L3389:192.168.1.10:3389 meinserver.dyndns.org
(Das -X wird eigentlich hier nicht gebraucht..)
Das wird vereinfacht. Dazu wird die private ssh config ein wenig erweitert:
lokal:~$ cat ~/.ssh/config
host meinserver
hostname meinserver.dyndns.org
user root
ForwardX11 yes
Port 222
LocalForward 3389 192.168.1.10:3389
Du kannst dann von einer anderen Konsole aus von deinem lokalen Rechner
aus auf den Remotedesktop des Windows-Rechners zugreifen:
lokal:~$ rdesktop localhost
Ist ja schon mal was, aber auch das lässt sich noch vereinfachen, so das
die Verbindung automatisch wieder geschlossen wird, wenn nicht mehr
gebraucht: (an die Gurus: Ja, das geht noch eleganter)
lokal:~$ ssh -f meinserver sleep 5 ; rdesktop localhost
Das ganze noch in einen Alias gespeichert: (Eintrag in die .bashrc)
alias rdp-meinserver="ssh -f meinserver sleep 5 ; rdesktop localhost"
Dann reicht ein:
lokal:~$ rdp-meinserver
Einfacher gehts nicht.
>>> 1. Wie kann ich prüfen, ob ein Tunnel erfolgreich aufgebaut wurde und er
>>> funktioniert?
>> Dazu müssen wir die Art des aufgebauten Tunnels wissen. Das erkennen wir
>> aus dem benutzten Kommando.
Indem Du den Tunnel benutzt :)
>>> 2. Gerne würde ich eine direkte Verbindung zum SSH-Server aufbauen, geht
>>> das?
Ja, auch das geht. Die Konfigurationsvariable wäre dann ProxyCommand. Ab
hier darfst Du dann aber auch selbst nachlesen, beispielsweise hier:
http://sshmenu.sourceforge.net/articles/transparent-mulithop.html
(Sonst geht der Lerneffekt ja flöten...)
Tip: als erstes wieder ohne Tunnel probieren, wie im Beispiel. Danach um
die Tunnel erweitern.
>>> 3. Kann ich über den Tunnel mehrere Verbindungen aufbauen?
>>> z. B. RDP zu Server 1 und RDP zu Server2?
Ja, einfach indem Du in der config mehrere LocalForward angibst:
LocalForward 1234 192.168.1.10:3389
LocalForward 4321 192.168.1.11:3389
Das Kommando wäre dann:
> lokal:~$ ssh -f meinserver sleep 5 ; rdesktop localhost:1234 & rdesktop localhost:4321
lg Lutz
Mehr Informationen über die Mailingliste linux-l