Estou usando export TMOUT=3600
no meu ~ / .bashrc para fechar uma sessão inativa após 1 hora.
Eu estou tentando zerar a opção exata, ou combinação de opções, que forçará cada sessão SSH a ser encerrada quando inativa por um tempo especificado. Estou usando Putty para SSH para um servidor RHEL AS3; keepalives são definidos como "off" (0) para Putty, e keepalives são comentados nos arquivos ssh_config e sshd_config.
Já fiz o retorno do Google para lugares diferentes e encontrei algumas informações sobre o ServerFault, mas espero encontrar uma solução "concreta". Eu tentei modificar o arquivo / etc / ssh / sshd_config adicionando isto:
ClientAliveInterval 15 ClientAliveCountMax 1
(está definido em 15 segundos para teste)
Em seguida, reiniciei o SSH:
/ sbin / service sshd restart
Mas sem sorte; a sessão nunca expirou (verificado novamente após 23 minutos). Eu também tentei modificar os parâmetros do kernel "keepalive":
% echo "60" > / proc / sys / net / ipv4 / tcp_keepalive_time (o padrão era 7200)
% echo "1" > / proc / sys / net / ipv4 / tcp_keepalive_probes (o padrão era 9)
% echo "5" > / proc / sys / net / ipv4 / tcp_keepalive_intvl (o padrão era 75)
Mas a sessão permaneceu ativa (verificado após 8 minutos). Qualquer ajuda sobre qual parte do quebra-cabeça eu estou perdendo seria muito apreciada. Obrigado!
--- DT
A maior parte do que você está configurando parece configurações tcp. Você precisa dizer ao seu shell para sair de você. O comentário sobre a configuração de TMOUT = 3600 por uma hora é um que eu tenho marcado. Você pode querer colocar isso no perfil global ( /etc/profile
)
tcp keepalives tem a ver com a frequência com que os pacotes são enviados para manter uma sessão tcp ativa. por exemplo, se não houve tráfego por um minuto e o tcp keep alive foi definido para 60 segundos, então um pacote keep alive seria enviado para manter a sessão ativa. Este é um conjunto razoável de descrições das várias variáveis tcp
eu tenho ClientAliveInterval 600 ClientAliveCountMax 0 e funciona
Já tentou definir o valor de IdleTimeout? Essa é uma configuração antiga, mas não tenho certeza de qual versão do ssh você está executando, por isso ainda pode funcionar. Você também pode definir o tempo limite ocioso no lado do cliente. Pessoalmente, eu colocaria as configurações de keepalive em algo que normalmente seria configurado, como 600 segundos com 3 keepalives, e veja se isso funciona.
você verificou se havia um conflito de IP com o seu servidor? Eu experimentei este caso ao configurar um servidor virtual do CentOS com o VMWare Workstation e usar a opção de ponte. O servidor virtual funciona bem no começo, mas cerca de uma hora depois, minha sessão ssh putty é desconectada do servidor rapidamente depois de tentar se conectar novamente.
Se você quiser tempo limite de comandos remotos iniciados de forma não interativa usando ssh, você pode usar algo assim:
( sleep $timeout && kill -9 0 ) 2>/dev/null & $cmd; RC=$? ; pkill -P $! ; exit $RC;