написание скрипта для проверки включено ли ssh туннелирование

написание скрипта для проверки включено ли ssh туннелирование

У меня настроен ssh-туннель следующим образом:

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

Я хочу написать скрипт для настройки проверки, скажем, раз в минуту (что я могу сделать, возможно, с помощью задания cron), который будет проверять, установлено ли это соединение, в противном случае он установит соединение (если включен vpn).

Что мне сделать, чтобы выполнить проверку туннеля SSH?

Заранее спасибо.

P.S. Я попробовал.

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

но он выходит. Я подозреваю, что параметры верны. На самом деле manpage/help указывает, что нет параметров -N и -L, а есть только -f и -M.

решение1

Вы можете использовать autosshдля этого. Цитатастраница руководства Ubuntu:

 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.)

Поэтому необходимо указать дополнительный порт мониторинга autossh. Выберите какой-нибудь порт N, чтобы оба порта N и N+1 были свободны, и используйте его с опцией -M, например,

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

Вы также можете отключить мониторинг с помощью -M 0. В системах на базе Debian autosshможно автоматически выбрать свободный порт для мониторинга.


Если ваше VPN-подключение прерывается, autosshследует определить через порт мониторинга, что SSH-подключение больше не активно, а затем попытаться перезапустить его. После этого:

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").

Связанный контент