Hier ein Beispiel um SSH vom Client mit beliebiger IP und hinter einem Router auf einen Server (server.example.com) Port 8022 zu leiten (alles in einer Zeile):
while true; do ssh -NCR 8022:localhost:22 -o BatchMode=yes -o CheckHostIP=no -o ServerAliveInterval=60 -o ServerAliveCountMax=2 server.example.com; sleep 60; done
Das Script wird als User (z.B. Username sshtunnel), welcher auf dem Client und Server eigens dafür angelegt wurde, auf dem Client per crontab-Eintrag (@reboot ~/bin/sshtunnel) ausgeführt. Damit keine Passwortauthentifizierung nötig ist, wird auf dem Client ein SSH-Key erstellt (ssh-keygen -t dsa) und auf den Server kopiert (ssh-copy-id -i ~/.ssh/id_dsa.pub server.example.com). Dann wird auf beiden Seiten der Useraccount abgesichert indem die Shell auf /bin/false gestellt und das Passwort gelockt (passwd -l sshtunnel) wird.
Hier ein Beispiel um SSH vom Client mit beliebiger IP und hinter einem Router auf einen Server (server.example.com) Port 8022 zu leiten (alles in einer Zeile):
while true; do ssh -NCR 8022:localhost:22 -o BatchMode=yes -o CheckHostIP=no -o ServerAliveInterval=60 -o ServerAliveCountMax=2 server.example.com; sleep 60; done
Das Script wird als User (z.B. Username sshtunnel), welcher auf dem Client und Server eigens dafür angelegt wurde, auf dem Client per crontab-Eintrag (@reboot ~/bin/sshtunnel) ausgeführt. Damit keine Passwortauthentifizierung nötig ist, wird auf dem Client ein SSH-Key erstellt (ssh-keygen -t dsa) und auf den Server kopiert (ssh-copy-id -i ~/.ssh/id_dsa.pub server.example.com). Dann wird auf beiden Seiten der Useraccount abgesichert indem die Shell auf /bin/false gestellt und das Passwort gelockt (passwd -l sshtunnel) wird.