AutoSSH para um túnel robusto

0

Estou tentando iniciar um túnel ssh de A para B e executá-lo apesar de coisas como: rede de período / wifi cai em A e reinicialização de servidor remoto em B. Meu túnel ssh começa a usar script upstart em A com início do evento em (net-device-up IFACE = eth0)

Eu encontrei o autossh, que supostamente lida com esse tipo de coisa, mas tive alguns problemas para fazê-lo funcionar. O upstart executa:

autossh -M 0 -2qTN -o "ServerAliveInterval 30" -o "ServerAliveCountMax 2" -L 5678:somehost:5678 user@B

No entanto, quando eu entro em B e mato -9 aquela sessão de túnel, o autossh simplesmente sai com "Connection to B closed by remote host". Isso não é o que eu esperava que o autossh fizesse.

Algum conselho sobre como configurar isso? Algum serviço de GUI que monitora utilitários lá fora que essencialmente exibem uma luz verde se um serviço é para cima?

Obrigado.

    
por Budric 31.07.2012 / 23:50

1 resposta

0

Talvez uma combinação com a tela ajude. Para a reconexão automática, você precisará de uma autenticação de chave também.

Eu criei um alias: alias sshtunnel = 'TERM = xterm ssh nome_do_servidor -a -x -t / opt / local / bin / screen -xRR -A -e ^ Zz -U -O -S tunnelToServer' A tela garante que sua sessão de terminal esteja ativa.

A última etapa é criar um script que verifique o host e inicie o alias novamente: $ while:; fazer enquanto ! ping -c1 -t1 server > / dev / null; dormir 10; feito; sshtunnel; Conexão de echo ao servidor caiu em $ (data); dormir 10; feito

Isso deve sobreviver a todas as quedas de rede. Você pode brincar com os tempos de sono também.

Se você chamar screen -ls, encontrará sua sessão de tela com o nome "tunnelToServer".

    
por Nomadic 07.09.2012 / 06:42