escrevendo um script para verificar se o tunelamento ssh está ativado

escrevendo um script para verificar se o tunelamento ssh está ativado

Eu tenho um túnel ssh configurado da seguinte forma:

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

Quero escrever um script para configurar uma verificação, digamos uma vez por minuto (o que posso fazer usando um cron job, talvez), que verificará se esta conexão está ativa, caso contrário, ele configurará a conexão (se a VPN estiver ligada ).

O que devo fazer para realizar a verificação do túnel ssh?

Desde já, obrigado.

PS: eu tentei

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

mas sai. Suspeito que as opções estejam corretas. Na verdade, a página de manual/ajuda indica que não há opções -N e -L, mas apenas -f e -M.

Responder1

Você pode usar autosshpara isso. Citandoa página de manual do 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.)

Portanto, uma porta de monitoramento adicional deve ser especificada autossh. Escolha alguma porta N para que N e N+1 sejam livres e use-a com a -Mopção, por exemplo,

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

Você também pode desativar o monitoramento com -M 0. Em sistemas baseados em Debian, autosshé possível escolher uma porta livre para monitoramento automaticamente.


Se a sua conexão VPN morrer, autosshvocê deve detectar através da porta de monitoramento que a conexão SSH não está mais ativa e tentar reiniciá-la. Depois disso:

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

informação relacionada