skrejci
Goto Top

Remote SSH von Raspberry auf freeSSHd unter Windows Server 2008

Hallo!

Ich experimentiere seit einiger Zeit mit RaspberryPis herum, und dabei bin ich jetzt auf ein Problem gestoßen, das mich und einen Kollegen seit mehreren Tagen plagt:

Ich möchte gerne von einem RaspberryPi eine ssh-Verbindung zu einem SSH-Server aufbauen. Der SSH-Server ist freeSSHd und läuft unter Windows Server 2008. Eingerichtet und getestet habe ich den freeSSHd von einem Windows 7 x64 Ultimate PC aus über Putty. Ich habe

~ über puTTYgen die Schlüssel erzeugt,
~ den public key am Server eingespielt,
~ den private key und die Tunnel-Infos (4R3333 127.0.0.1:22) in Putty eingestellt, und

die Verbindung klappt einwandfrei. Auth über Zertifikat wunderbar, ich bekomme die Windows-CMD, und vom Server selbst aus kann ich mich über localhost:3333 wieder per SSH auf die Win7-Maschine per ssh verbinden. Super.

Dachte ich mir. Hab dann dasselbe private Zertifikat am Raspberry unter ./ssh/id_rsa abgelegt und wollte die Verbindung mit
ssh -N -R 3333:127.0.0.1:22 userid@sshServerIP
verbinden. Und: Fehler: remote port forwarding failed for listen port 3333

Hat irgendjemand von euch schon ähnliche Erfahrungen gemacht bzw. kann mir einen Tipp geben, der mich weiterbringt?

Danke, Stefan

Content-ID: 232639

Url: https://administrator.de/contentid/232639

Ausgedruckt am: 05.11.2024 um 12:11 Uhr

orcape
orcape 14.03.2014 um 16:58:15 Uhr
Goto Top
Hi Stefan,
Fehler: remote port forwarding failed for listen port 3333
...ist eigentlich eindeutig.
Dann installiere Dir mal "nmap" und checke mal die Ports.
Gruß orcape
sKrejci
sKrejci 14.03.2014 um 20:10:33 Uhr
Goto Top
Hallo!
Danke für deinen Tipp! Ich weiß, dass die Aussage "eindeutig" ist, aber ich weiß nicht, was der Grund dafür ist. Die Ports checke ich am Server mit netstat -a, und sehe, dass der 3333 vor Herstellen der Verbindung nicht belegt ist.

Stelle ich die Verbindung über PUTTY her, ist anschließend der Port 3333 auf 127.0.0.1 offen, und lässt sich auch korrekt benutzen.

Aber wenn ich vom RasPi aus den Tunnel öffnen möchte, zeigt mir netstat (und auch nmap, das ich mir jetzt installiert habe - das zeigt dasselbe an) keinen offenen Status auf 3333. Dieser Port ist in der Liste nicht vorhanden.

Sprich: Was ist am Öffnen des Tunnels über Debian-ssh anders als beim Öffnen über Putty?

Danke, Stefan
aqui
Lösung aqui 16.03.2014, aktualisiert am 26.03.2014 um 17:56:24 Uhr
Goto Top
Im hiesigen Tutorial:
VPN für Arme - TCP in SSH tunneln mit Putty
findest du eine lauffertige Anleitung zum abtippen.

Dein Fehler ist das der SSH Daemon auf dem RasPi nur auf TCP 22 hört. Wenn er auf TCP 3333 hören soll, dann musst du das in der SSH Setup Datei /etc/ssh/sshd_config ändern und den Damon neu starten. Siehe...
http://kevinhartmann.de/2009/10/07/debian-ssh-port-andern/

Tip: Du solltest KEINE von der IANA zugweisenen festen TCP Ports verwenden sondern für eigene Ports immer die sog. Ephemeral Ports 49152 bis 65535 verwenden ! (Siehe auch hier ).
Das hat außerdem den Vorteil das diese Ports nicht in den typischen Hacker Tools von Script Kiddies eingestellt sind !
Grundlegende IP Netzwerk Infos und Settings findest du im hiesigen RasPi Tutorial:
Netzwerk Management Server mit Raspberry Pi
sKrejci
sKrejci 16.03.2014 um 19:28:49 Uhr
Goto Top
Hallo aqui,

vielen Dank für deine Hinweise! Hab mir alles durchgelesen und bin leider immer noch nicht schlauer:
Tatsächlich ist mir bei diesem Beispiel der Fehler mit dem nicht-offenem Port 3333 (verwende ich eh nur testweise) unterlaufen.
Aber leider funktioniert auch der Reverse-Tunnel mit Port 22 nicht, also durch Aufruf

ssh -N -R 22:127.0.0.1:22 userid@sshServerIP
oder
ssh -N -R 22:localhost:22 userid@sshServerIP

nicht. Und Port 22 ist auf dem RasPi ja offen.

Wenn ich mir auf einem Windows-Client einen ssh Server testweise installiere, und von dort dann über PUTTY sie ssh-Connection mitsamt dem Reverse-Tunnel zum selben ssh-Server aufbaue, funktioniert das aber einwandfrei.

Der Aufbau der SSH-Verbindung vom RasPi zum ssh-Server ohne Reverse-Tunnel funktioniert aber nach wie vor einwandfrei.

Wo ist da der Unterschied zwischen den beiden Aufrufen? Wieso gelingt es Putty, dem Windows-ssh-Server zum Aufbau des Reverse-Tunnels zu befehlen, und der Linux-ssh-Befehl nicht?

Stefan
orcape
Lösung orcape 16.03.2014, aktualisiert am 26.03.2014 um 17:56:08 Uhr
Goto Top
Hi sKrejci,
Du hast Da sicher noch einen Fehler in der Conf.
Wieso gelingt es Putty, dem Windows-ssh-Server zum Aufbau des Reverse-Tunnels zu befehlen,
und der Linux-ssh-Befehl nicht?
...dann installiere Dir doch mal Putty auf dem RasPi, wenn Du der Meinung bist, das es damit funktioniert.
Ich glaube nicht das es etwas mit Putty zu tun hat.
Gruß orcape
sKrejci
sKrejci 18.03.2014 aktualisiert um 15:33:59 Uhr
Goto Top
Hallo orcape!

Vielen Dank auch für deinen Hinweis!

Ich habe mir jetzt die Kommandozeilenversion von Putty, also "plink", auf dem RasPi installiert, und da funktionierts face-wink

Löst zwar nicht die Frage, wieso's mit "ssh" nicht geht, aber mit "plink -ssh ..." lässt sich der Reverse-Tunnel auf jedem beliebigen Remote-Port funktionsfähig einrichten.

Danke allen! Stefan
aqui
aqui 19.03.2014 um 10:14:19 Uhr
Goto Top
Bitte dann auch
Wie kann ich einen Beitrag als gelöst markieren?
nicht vergessen !