Como configurar o ssh no Mac OS (cliente) e no servidor (ubuntu) para recuperar da conexão temporária perdida

1

Estou tendo problema que meu roteador de rede é reinicializado ocasionalmente e por causa disso minha conexão ssh via terminal ao meu servidor Ubuntu está finalizada. A conexão com a internet é apenas temporária e não quer que os processos que estou executando no terminal sejam mortos.

No meu cliente ~ / .ssh / config eu tenho:

TCPKeepAlive yes
ServerAliveCountMax 10
ServerAliveInterval 5

Mas o ajuste dos parâmetros acima não ajuda. O servidor sshd tem parâmetros ubuntu padrão.

Como configurar o ssh no cliente (Mac OS no meu caso) e sshd no servidor (Ubuntu no meu caso) para que minhas sessões ssh sobrevivam a reinicialização do roteador?

Obrigado!

    
por Robert Grezan 26.07.2013 / 23:33

4 respostas

2

Devido à natureza do protocolo subjacente que o ssh usa (TCP), as conexões cairão após uma certa quantidade de tempo limite. Eu tenho a tendência de contornar esses problemas de duas maneiras:

1) use screen no servidor remoto e reconecte após a conexão ser restaurada. 2) configure uma VPN (como openvpn ) e use a transmissão udp, que permite interrupções de rede (assim como, com um pouco de configuração, mudanças de IP de origem).

    
por 26.07.2013 / 23:47
1

Como seu servidor e seu cliente são bem compatíveis, eu recomendo MOSH . O MOSH usa SSH, mas é projetado para mobilidade, para que você possa se conectar, desconectar, alterar IP, etc., e tentará fazer a coisa certa e manter você conectado. Mesmo se você for desconectado, ele se conectará automaticamente e o colocará de volta onde você estava.

O lado negativo principal do MOSH é que ele requer a instalação de software extra e não é suportado em todas as plataformas. O Windows tem suporte semi-nativo via MobaXTerm, e não funciona em coisas como o VMWare ESXi, que tem apenas suporte a SSH.

O MOSH também ajuda em links lentos ativando a "entrada preditiva", em que o que você digita basicamente ecoa localmente enquanto o sistema descobre se deve ou não realmente fazê-lo.

    
por 11.03.2015 / 11:37
0

Você pode realizar este com autossh

a simple program that allows you to run an instance of ssh - keeps it under control, and restarting the same instance once that the connection is dropped up to a maximum number of times controlled by the environment variable AUTOSSH_MAXSTART or indefinitely if the value of this is negative (the default).

Combinando esta solução com a tela (mencionado pela primeira vez por Drav) é ainda melhor.

    
por 27.07.2013 / 00:48
0

O parâmetro acima mencionado deve ser definido no site do servidor ssh também. Apenas no lado do cliente não ajudou. Se você não tiver os direitos para ajustar a configuração do sshd. Eu poderia usar clientes ssh que suportam um ssh inerente ao vivo. O envio de alguns dados para manter a conexão. Putty pode fazer isso para windows, SecureCRT pode fazer isso mac. Talvez haja clientes adicionais por aí, que suportem esse recurso.

    
por 11.03.2015 / 13:48