Um "von draußen" ein Verbindung in ein abgesichertes Netz herzustellen, sind normalerweise VPN-Verbindungen mit OpenVPN oder IPsec die Mittel der Wahl. Um ohne große Konfiguration ein ähnliches Ziel zu erreichen, lassen sich auch SSH-Verbindungen forwarden, die auf einem im Internet erreichbaren Rechner enden - der selbstverständlich entsprechend gut abgesichert sein muss. Zum Beispiel stellt der folgende SSH-Aufruf eine solche Remote-Forwarding-Verbindung her:
internalhost:~$ ssh -N -R 2222:localhost:22 user@remoteserver
Anschließend lässt sich mit dem Aufruf "ssh -p 2222 localhost" nach dem Einloggen auf remoteserver eine Verbindung zum internalhost herstellen. Im Prinzip könnte der remoteserver diesen Port auch nach außen anbieten, aber nachdem das keine besonders sichere Konfiguration ist, wollen wir hier nicht weiter auf dessen Konfiguration eingehen (siehe die Anweisung "GatewayPorts" in der sshd-Konfiguration)
Wenn die herstellte Forwarding-Verbindung abbricht, stellt SSH sie von selber nicht mehr her, insofern ist die Methode fehleranfällig. Dieses Problem löst AutoSSH, das die Verbindung überwacht und bei Bedarf wieder herstellt. Praktischweise sind die Aufrufoptionen die gleichen wie bei SSH, sodass der Anwender keine neuen Parameter lernen muss. Wer das Tool mit einem Init-System wie Upstart kombiniert, kann die AutoSSH-Verbindung schon beim Booten starten:
description "autossh tunnel" start on (local-filesystems and net-device-up IFACE=eth0) stop on runlevel [016] respawn respawn limit 5 60 exec /usr/bin/autossh -N -R 2222:localhost:22 -o BatchMode=yes -o StrictHostKeyChecking=no -i /root/.ssh/id_rsa user@remoteserver