autossh encaminhou as portas deixadas abertas na falha de conexão

1

Estou tentando estabelecer um túnel SSH reverso a partir da minha rede doméstica. Eu tenho isso para que o autossh se conecte com sucesso uma vez (e apenas uma vez) por reinicialização. Estou encaminhando portas remotas para minha máquina local para que eu possa me conectar quando estiver longe de casa. Estou na internet via satélite e estou atrás de um firewall NAT duplo, portanto, conectar-se diretamente à minha rede doméstica é algo não-inicial.

Parece que as portas na máquina remota são deixadas em estado aberto quando a conexão ssh é desconectada pela primeira vez. Qualquer tentativa subsequente de reconectar falha porque as portas já estão em uso. Eu não consigo fazer as coisas começarem novamente até que eu reiniciei o servidor, o que é menos que o ideal.

Ainda não tive sorte com as pesquisas do Google ou do fórum, então espero que alguém aqui me aponte para a direção certa.

Eu configurei o servidor e a máquina local seguindo as orientações aqui:

link

Meu script de conexão é extraído abaixo e incluído em /etc/rc.local:

su -s /bin/sh autossh -c 'autossh -M 20000 -f -i /home/autossh/.ssh/id_rsa -N -R 99999:localhost:22 [email protected]'

Felicidades e obrigado antecipadamente por qualquer ajuda!

Corey

    
por corey_s 30.01.2016 / 04:12

1 resposta

0

Ok ... Solução parcial, embora ainda não tenha certeza de que está completamente resolvido. Fiz as seguintes alterações e as coisas estão pelo menos ainda conectadas durante a noite. Não tenho certeza se ele será reconectado com êxito, uma vez que a sessão termine, no entanto.

  1. Adicionadas as seguintes linhas ao servidor remoto sshd_config:

    ClientAliveInterval 600
    ClientAliveCountMax 12
    
  2. Modificado o script rc.local para iniciar o autossh da seguinte maneira (adicionadas as opções ServerAliveInterval e ServerAliveCountMax):

    su -s /bin/sh autossh -c 'autossh -M 20000 -f -i /home/autossh/.ssh/id_rsa -o "ServerAliveInterval 120" -o "ServerAliveCountMax 5" -N -R 99999:localhost:22 [email protected]'
    

Também descobri que a conexão usando o GatewayPort não era confiável. Em vez de:

user@machine1 $ ssh -p 99999 remotehost.com

Eu efetuo login no host remoto diretamente e, em seguida, conecto à porta 99999 no host local, ala:

user@machine1 $ ssh remotehost.com
user@remotehost $ ssh -p 99999 localhost

Isso parece ser mais confiável. A porta do gateway tende a travar. Mas se eu me conectar em duas etapas acima, eu ainda estou passando. Vou postar de volta com atualizações assim que eu tiver a chance de ver se ele se reconecta depois que uma sessão cai.

Espero que isso ajude os outros!

Corey

    
por corey_s 30.01.2016 / 15:38