ssh session idle timeout

9

A máquina Solaris na qual fazemos a maior parte do nosso desenvolvimento tem o hábito incômodo de distribuir o tempo das sessões SSH. Não importa se o cliente é meu desktop Ubuntu, minha área de trabalho Solaris ou minha área de trabalho do Windows (massa); o fator comum é a grande máquina Solaris.

Existe algo que eu possa fazer para impedir que isso aconteça? É irritante quando você faz uma pausa para o almoço e as sessões de terminal que você abriu e delicadamente configuradas estão todas congeladas, então você precisa matar todas elas e restabelecer todo o seu contexto.

    
por Andrew 01.05.2009 / 08:38

12 respostas

8

Sim. Configure o SSH para enviar pacotes keepalive .

    
por 01.05.2009 / 08:39
2

Descobri que o comportamento keepalive não funcionou bem. Eu tentei adicionar o ServerAliveInterval ao script ~ / .ssh / config, mas ele não funciona bem com o git.

O que acabei fazendo é adicionar um timestamp à minha barra de status 'screen'. Isso é atividade suficiente para manter a conexão.

    
por 07.05.2009 / 06:50
1

Você também pode configurar o Putty para enviar pacotes keep alive.

Em Configurações, Conexão, Segundos entre keepalives.

    
por 13.05.2009 / 00:34
1

Primeiro, você precisa determinar se é o seu shell que está desconectando você ou o ssh. Para testar, ssh em sua máquina remota e vi ou menos um arquivo.

Se muito tempo depois você ainda pode se mover menos / vi, então o ssh está bem. Nesse caso, determine qual shell você está usando e desative o tempo limite. É mais provável que o shell esteja sincronizando você e não o SSH. No entanto, alguns firewalls fecharão as sessões ociosas se os alertas não forem enviados.

O administrador do Solaris pode impedir que você desative o tempo limite no seu shell, tornando a configuração somente leitura. Isso é improvável, mas é possível. Geralmente você pode contornar isso usando um shell diferente.

    
por 01.06.2009 / 07:10
1

Se você tiver problemas para reconfigurar o seu shell novamente, você pode usar a tela GNU. Se a sua sessão SSH expirar, basta fazer login novamente e reconectar e seu shell será exatamente como estava.

    
por 01.06.2009 / 07:23
0

Se você executar o tcsh na máquina Solaris, a variável autologout poderá ser definida. Se você definir isso como 0 (defina autologout = 0) ou desmarque-o (desabilitar autologout), ele irá parar de desconectá-lo.

    
por 05.05.2009 / 09:15
0

Isso pode ser um arenque vermelho, mas tente

unset TMOUT

no seu prompt de shell. Isso certamente funcionou para mim no passado, mas não me lembro se está restrito a certas arquiteturas (ou shells).

    
por 13.05.2009 / 00:24
0

Digite seu perfil de shell

export TMOUT=0

export TIMEOUT=0

    
por 13.05.2009 / 02:57
0

Você pode executar top em outro terminal? Isso deve gerar tráfego regular?

    
por 16.06.2009 / 11:42
0
O Spinner parece a solução perfeita para o seu problema. Periodicamente envia caracteres em sua sessão para evitar que o tempo limite.

    
por 06.09.2009 / 23:49
-1

Sempre tive sucesso com o 'ClientAliveInterval 300' em servidores linux / bsd.

    
por 01.06.2009 / 08:02
-1

Verifique sua configuração sshd de linhas como estas em /etc/ssh/sshd_config :

ClientAliveInterval 600
ClientAliveCountMax 0
    
por 29.12.2015 / 15:31