Como posso manter minhas sessões SSH congeladas?

46

Eu tenho ServerAliveInterval e, no caso de poucas máquinas, também ClientAliveInterval definido para 540 em arquivos de configuração de cliente / servidor SSH (suponho que defini-lo como mais do que isso não seria uma boa ideia). Eu trabalho com muitas sessões SSH que atualmente congelam depois de alguns minutos.

Como posso corrigir isso? O que eu quero é ter uma sessão para não congelar, de modo que, se eu abrir uma sessão às 8 e não usá-la por 4 horas, por exemplo, continuar a usá-la novamente às 12, sem precisar fazer login novamente .

    
por syntagma 04.05.2015 / 09:33

5 respostas

58

As alterações que você fez em /etc/ssh/ssh_config e /etc/ssh/sshd_config estão corretas, mas ainda não surtem efeito.

Para que sua configuração funcione, faça essas alterações de configuração no cliente:

/etc/ssh/ssh_config

Host *
ServerAliveInterval 100

ServerAliveInterval O cliente enviará um pacote nulo ao servidor a cada 100 segundos para manter a conexão ativa

Pacote NULL É enviado pelo servidor para o cliente. O mesmo pacote é enviado pelo cliente para o servidor. Um pacote TCP NULL não contém nenhum sinalizador de controle como SYN, ACK, FIN etc. porque o servidor não requer uma resposta do cliente. O pacote NULL é descrito aqui: link

Em seguida, configure a parte sshd no servidor.

/etc/ssh/sshd_config

ClientAliveInterval 60
TCPKeepAlive yes
ClientAliveCountMax 10000

ClientAliveInterval O servidor aguardará 60 segundos antes de enviar um pacote nulo ao cliente para manter a conexão ativa

TCPKeepAlive Existe para garantir que determinados firewalls não descartem conexões inativas.

ClientAliveCountMax O servidor enviará mensagens vivas ao cliente, mesmo que não tenha recebido nenhuma mensagem do cliente.

Por fim, reinicie o ssh server

service ssh restart ou service sshd restart dependendo do sistema em que você está.

    
por 04.05.2015 / 10:58
11

Sugestão pessoal: use screen no host remoto; ele conseguirá manter sua conexão ativa enquanto permanecer ativa em um terminal.

Veja o que eu geralmente adiciono a /etc/screenrc para uma rápida identificação das sessões da minha tela:

hardstatus alwayslastline
hardstatus string "%{= kG}[ %{G}%H %{g}][ %{=kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B}%Y-%m-%d %{W}%c %{g}]"
defscrollback 8192

EDITAR: Dicas.

A string hardstatus mostrará uma linha de status inferior como esta:

O buffer de rolagem também é estendido para 8192 linhas ao invés das usuais 1000-1500 (dependendo da distribuição).

    
por 04.05.2015 / 09:53
2

Com o OpenSSH:

Você precisa ativar

TCPKeepAlive yes

no seu cliente ssh_config (por exemplo, /etc/ssh/ssh_config ou em ~/.ssh/config ) e no seu servidor SSH de destino que executa o OpenSSH (por exemplo, / etc / ssh / sshd_config).

Assim, toda vez que sua conexão fica inativa, o OpenSSH envia algum pacote fictício ao seu host de destino ...

    
por 04.05.2015 / 10:50
1

Verifique sua configuração do sshd na máquina host /etc/sshd_config para a IdleTimeout configuração .

IdleTimeout time
Sets idle timeout limit to time in seconds (s or nothing afternumber), 
in minutes (m), in hours (h), in days (d), or in weeks (w).If the 
connection have been idle (all channels) for that long time thechild 
process is killed with SIGHUP, and connection is closed down.
    
por 04.05.2015 / 10:51
1

Se o problema for um laptop em hibernação ou uma conexão de rede que não seja perfeita, recomendamos o uso de mosh que é executado ssh e permite a reconexão automática.

No site :

Mosh (mobile shell)

Remote terminal application that allows roaming, supports intermittent connectivity, and provides intelligent local echo and line editing of user keystrokes.

Mosh is a replacement for SSH. It's more robust and responsive, especially over Wi-Fi, cellular, and long-distance links.

Mosh is free software, available for GNU/Linux, BSD, macOS, Solaris, Android, Chrome, and iOS.

Em combinação com tmux (ou o antigo screen ), isso permite que eu me conecte via ssh a um servidor do meu laptop e permaneça conectado por dias mesmo ao alterar conexões Wi-Fi e sobreviver a desistências de dados móveis .

    
por 31.01.2017 / 13:19

Tags