Como uma conexão SSH se torna inativa? [duplicado]

4

Eu configurei uma conexão SSH para executar um programa em um servidor remoto. O programa imprime informações de depuração no terminal a cada 10 segundos. Se eu deixar as janelas do SSH abertas por um longo tempo (digamos, 10 horas), a conexão SSH se tornará inativa? Como a atividade é definida em uma sessão SSH? Devo digitar / executar o comando a cada x segundos para manter a sessão ativa?

    
por ManiAm 15.02.2016 / 05:47

2 respostas

7

Você não precisa fazer nada de especial, o SSH não encerra uma conexão devido à inatividade. Portanto, não há período de inatividade definido dentro de SSH.

No entanto, um dos dispositivos na rota de rede entre você e seu servidor pode perder a rota e, normalmente, essa atividade de um lado é suficiente, mas nem sempre (há "pacotes de confirmação de chegada", confirmações, voltando ao servidor do cliente ao usar o TCP). O tráfego de ambos os lados não é garantia de conectividade contínua, se você tiver um modem DSL e seu provedor decidir que você obtém um novo endereço IP todos os dias, a conexão será interrompida.

Você pode mandar seu cliente enviar alguns pacotes regularmente inserindo

ServerAliveInterval 5

em /etc/ssh/ssh_config ou seu ~/.ssh/config para ter algum tráfego de cliente para servidor a cada 5 segundos, além do tráfego proveniente do servidor a cada 10 segundos.

A "solução" mais simples para o modem DSL redefinir uma conexão está executando o software do servidor em tmux ou screen : se a conexão for interrompida, você apenas conecta novamente o SSH ao servidor, emite tmux attach ou screen -r e você pode continuar a visualizar o programa do servidor ininterrupto.

Usar tmux / screen é especialmente útil se você não estiver muito preocupado com a perda da conexão, mas com a conseqüência que o programa do servidor parará se você fizer isso. Para isso, você também pode redirecionar a saída do programa original para o arquivo e usar tail -f , mas isso não permite que você interaja facilmente com o programa do servidor (se isso for necessário). tmux e screen (em suas formas básicas) são fáceis de usar, mas há alguns efeitos colaterais como não poder rolar para trás usando os controles deslizantes em seu terminal gráfico (você precisa usar atalhos de teclado para ter o servidor rolar de volta em seu buffer para isso).

Uma solução mais flexível em torno dos dispositivos que violam sua conexão é usar mosh . Isso usa o SSH para trocar algumas informações secretas e, em seguida, permite a reconexão, mesmo que um ou ambos os endereços IP sejam alterados. No entanto, isso é mais difícil de configurar e começar a funcionar.

No seu caso, eu começaria usando tmux e reconectaria manualmente quando a conexão realmente fosse desativada.

    
por 15.02.2016 / 06:36
-1

também, muito útil para usar o comando SCREEN. Com isso, você pode executar qualquer comando e não se preocupar com sua conexão ssh.

    
por 15.02.2016 / 08:12

Tags