Hallo,
das Problem liegt beim Router.Er leitet die Pakete nicht weiter. Um dies zu erreichen braucht man einen SSH-Tunnel.
So gehts:
Auf dem Arbeitsrechner hinter der Firewall (A genannt) richtet man wie gewohnt den sshd so ein, dass er an Port 22 horcht und Verbindungen von Überall akzeptiert. In der sshd_config ( etc/ssh) sollten also folgende Dinge stehen:
Port 22
ListenAddress 0.0.0.0
(Man kann später immer noch den Zugriff beschränken, aber erstmal alles zulassen.)
Damit das Forwarding auf der Server-Seite auch funktioniert, ist es bei älteren ssh-Versionen notwendig, den Parameter "GatewayPorts Yes" in die sshd_config einzufügen. Damit wird entfernten Rechnern erlaubt, sich mit einem Forwarding einzuloggen.
Nachdem man den ssh-Daemon gestartet hat, verbindet man sich von A auf einen Rechner vor der Firewall (genannt B), der von überall aus dem Internet erreichbar ist:
ssh -g -R 50022:localhost:22 login@B
Die Option "-g" erlaubt entfernten Rechnern (wie B) die Verbindung auf lokale weitergeleitete Ports (also 'geforwardete' Ports auf A).
Die Option "-R" gefolgt von dem Einwahl-Port 50022 des Rechners B, dem Rechner B bekannten Adresse (localhost) und dem Zielport 22 von A (an dem sshd horcht), bewirkt die eigentliche Weiterleitung.
Das funktioniert so: Auf Rechner B horcht die bestehende ssh-Verbindung an Port 50022 unter localhost. Falls sich jemand via "ssh -g -p 50022 login@B" dort einloggt, wird die Verbindung 'rückwärts' zu A durch die Firewall geleitet an Port 22. (login ist ein Loginname des Rechners A.)
Aber nochmal kurz und verständlich:
Von A (dem lokalen Rechner) aus (hinter der Firewall):
ssh -g -R remote_port:localhost:local_port login@B
Von irgendwo vor der Firewall auf B einloggen:
ssh login@B
ssh -g login@localhost
Und man landet auf dem Rechner hinter der Firewall.
Viel Erfolg beim Ausprobieren
Gruß
penguintux