Configuração de Inatividade da Sessão SSH?

4

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

    
por Dizzle 23.07.2009 / 22:37

7 respostas

3

Estou usando export TMOUT=3600 no meu ~ / .bashrc para fechar uma sessão inativa após 1 hora.

    
por 23.07.2009 / 23:46
3

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

    
por 24.07.2009 / 00:18
1

eu tenho ClientAliveInterval 600 ClientAliveCountMax 0 e funciona

    
por 23.07.2009 / 23:06
0

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.

    
por 23.07.2009 / 23:53
0

Eu sou um fã de ocioso. Sim, é um daemon extra do espaço do usuário, mas funciona lindamente.

link

Tarball de origem: link

(O link original era: link mas parece estar inativo no momento)

    
por 24.07.2009 / 01:13
0

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.

    
por 17.07.2013 / 10:00
0

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;
    
por 02.05.2016 / 13:58