Schreiben eines Skripts, um zu prüfen, ob SSH-Tunneling aktiviert ist

Schreiben eines Skripts, um zu prüfen, ob SSH-Tunneling aktiviert ist

Ich habe einen SSH-Tunnel wie folgt eingerichtet:

ssh -N -L 1105:remote.server:25 office-machine&

Ich möchte ein Skript schreiben, das beispielsweise einmal pro Minute eine Prüfung einrichtet (was ich vielleicht mit einem Cron-Job machen kann), die prüft, ob diese Verbindung aktiv ist, und andernfalls die Verbindung einrichtet (wenn VPN aktiviert ist).

Was muss ich tun, um die Prüfung für den SSH-Tunnel durchzuführen?

Dank im Voraus.

PS: Ich habe es versucht

autossh -N -L 1105:remote.server:25 office-machine&

aber es wird beendet. Ich vermute, dass die Optionen richtig sind. Tatsächlich gibt die Manpage/Hilfe an, dass es keine Optionen -N und -L gibt, sondern nur -f und -M.

Antwort1

autosshSie können hierfür verwenden . Zitierendie Ubuntu-Manpage:

 autossh is a program to start a copy of ssh and monitor it, restarting it as necessary
 should it die or stop passing traffic.

 The original idea and the mechanism were from rstunnel (Reliable SSH Tunnel). With version
 1.2 of autossh the method changed: autossh uses ssh to construct a loop of ssh forwardings
 (one from local to remote, one from remote to local), and then sends test data that it
 expects to get back. (The idea is thanks to Terrence Martin.)

Daher muss ein zusätzlicher Überwachungsport angegeben werden autossh. Wählen Sie einen Port N, so dass sowohl N als auch N+1 frei sind, und verwenden Sie ihn mit der -MOption, z. B.

autossh -M 20000 -N -L 1105:remote.server:25 office-machine

Sie können die Überwachung auch mit deaktivieren -M 0. Auf Debian-basierten Systemen autosshkann automatisch ein freier Port für die Überwachung ausgewählt werden.


Wenn Ihre VPN-Verbindung abbricht, autosshsollten Sie über den Überwachungsport feststellen, dass die SSH-Verbindung nicht mehr aktiv ist, und dann versuchen, sie neu zu starten. Danach:

Continued failures
 If the ssh connection fails and attempts to restart it fail in quick succession, autossh
 will start delaying its attempts to restart, gradually backing farther and farther off up to
 a maximum interval of the autossh poll time (usually 10 minutes).  autossh can be "prodded"
 to retry by signalling it, perhaps with SIGHUP ("kill -HUP").

verwandte Informationen