tempo limite inativo da sessão ssh

9

A máquina Solaris em que desenvolvemos a maior parte do nosso desenvolvimento tem o hábito irritante de esgotar o tempo limite das sessões SSH. Não importa se o cliente é minha área de trabalho 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 abertas e configuradas com delicadeza são todas congeladas, então você precisa matá-las todas e restabelecer todo o seu contexto.

Andrew
fonte

Respostas:

8

Sim. Configure o SSH para enviar pacotes keepalive .

Sophie Alpert
fonte
Já temos "KeepAlive Yes" no / etc / ssh / sshd_config. Porém, ele não tinha um valor ClientAliveInterval; então eu adicionei isso e veremos como isso acontece.
Andrew
1
Também é importante notar que você pode fazer o contrário também. Se não foi possível alterar a configuração do servidor, é possível solicitar ao cliente ssh que envie os pacotes keep alive usando o ServerAliveInterval.
SpoonMeiser 5/05
A localização desse artigo foi alterada. Aqui está o atual: forumone.com/blogs/post/quick-tip-ssh-keepalive
John Bachir
2

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

O que acabei fazendo foi adicionar um carimbo de data / hora à minha barra de status da 'tela'. Isso é atividade suficiente para manter a conexão ativa.

Andrew
fonte
Se você quer esta funcionalidade fora da tela (1), confira Spinner
de Drew Stephens
1

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

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

justinhj
fonte
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 puder mover menos / vi, o ssh está bom. Nesse caso, determine qual shell você está usando e desative o tempo limite. É mais provável que o shell esteja atingindo o tempo limite e não o SSH. No entanto, alguns firewalls fecharão as sessões inativas se o Keep Alive não for enviado.

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.

brianegge
fonte
1

Se você tiver problemas para reconfigurar seu shell novamente, poderá usar a tela GNU. Se a sua sessão SSH atingir o tempo limite, faça o login novamente e reconecte-se e seu shell será exatamente como era.

staticsan
fonte
0

Se você executar o tcsh na máquina Solaris, a variável de saída automática poderá ser definida. Se você definir esse valor como 0 (definir autologout = 0) ou desabilitar (desabilitar autologout), ele interromperá o logout.

Jimmy Hedman
fonte
0

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 é restrito a certas arquiteturas (ou shells).

dr-jan
fonte
0

Digite seu perfil de shell

exportar TMOUT = 0

exportar TIMEOUT = 0

setatakahashi
fonte
0

Você poderia correr topem outro terminal? Isso deve gerar tráfego regular?

Rory
fonte
0

Spinner parece a solução perfeita para o seu problema. Periodicamente, envia caracteres em sua sessão para evitar que o tempo limite se esgote.

Drew Stephens
fonte
-1

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

afa
fonte
-1

Verifique sua sshdconfiguração para linhas como estas em /etc/ssh/sshd_config:

ClientAliveInterval 600
ClientAliveCountMax 0
Frank
fonte