Qual é o tempo limite padrão para o OpenSSH?

21

Não consigo encontrar uma resposta para esta pergunta simples, que eu preciso para alguma documentação de conformidade.

Em uma instalação padrão do CentOS 6.5 (OpenSSH 5.3p1-94.el6), após quanto tempo ficará ocioso, a sessão SSH de um usuário será encerrada? Eu acredito que o seguinte pode ser definido para aumentar o tempo limite ocioso, mas eles são comentados por padrão.

$ grep -i alive /etc/ssh/sshd_config
#TCPKeepAlive yes
#ClientAliveInterval 0
#ClientAliveCountMax 3

Além disso, há um comando para descarregar uma lista das configurações atuais de sshd ? Não vejo nada em man sshd .

    
por Banjer 15.08.2014 / 16:07

5 respostas

19

As linhas comentadas em sshd_config geralmente exibem os padrões. Este é o caso de todas as linhas da sua pergunta. Você pode verificar isso no sshd_config manpage . Aqui estão os trechos relevantes:

TCPKeepAlive

      Specifies whether the system should send TCP keepalive messages to the other side.  If they are sent, death of the connection or crash of one of the machines will be properly noticed.  However, this means that connections will die if the route is down temporarily, and some people find it annoying.  On the other hand, if TCP keepalives are not sent, sessions may hang indefinitely on the server, leaving “ghost” users and consuming server resources.

      The default is “yes” (to send TCP keepalive messages), and the server will notice if the network goes down or the client host crashes.  This avoids infinitely hanging sessions.

      To disable TCP keepalive messages, the value should be set to “no”.

      This option was formerly called KeepAlive.

ClientAliveCountMax

      Sets the number of client alive messages (see below) which may be sent without sshd(8) receiving any messages back from the client.  If this threshold is reached while client alive messages are being sent, sshd will disconnect the client, terminating the session.  It is important to note that the use of client alive messages is very different from TCPKeepAlive (below) (above).  The client alive messages are sent through the encrypted channel and therefore will not be spoofable.  The TCP keepalive option enabled by TCPKeepAlive is spoofable.  The client alive mechanism is valuable when the client or server depend on knowing when a connection has become inactive.

      The default value is 3.  If ClientAliveInterval (see below) is set to 15, and ClientAliveCountMax is left at the default, unresponsive SSH clients will be disconnected after approximately 45 seconds.  This option applies to protocol version 2 only.

ClientAliveInterval

      Sets a timeout interval in seconds after which if no data has been received from the client, sshd(8) will send a message through the encrypted channel to request a response from the client.  The default is 0, indicating that these messages will not be sent to the client.  This option applies to protocol version 2 only.
    
por 15.08.2014 / 16:24
7

Você pode configurar o keepalive do SSH para o lado do cliente ou do servidor:

Lado do cliente

Arquivo: /etc/ssh/ssh_config

Conteúdo:

Host *
ServerAliveInterval XX
ServerAliveCountMax YY

Lado do servidor

Arquivo: /etc/ssh/sshd_config

Conteúdo:

ClientAliveInterval XX
ClientAliveCountMax YY

Extraído de: link

    
por 12.02.2016 / 23:12
0

O OpenSSH não terminará uma sessão de shell que ficou inativa por algum tempo. Isso não é algo que o OpenSSH faz. Encerrar uma sessão de shell inativa não está relacionado à configuração do OpenSSH.

As configurações que você está mostrando estão relacionadas a tempos de espera quando a conexão é interrompida e não estão relacionadas ao shell no host remoto e ao que o usuário está fazendo ou não fazendo lá.

Para descarregar a configuração sshd , use o "modo de teste estendido" como root:

sshd -T

Isto está documentado em o sshd(8) manual (olhando para OpenSSH_7.7, LibreSSL 2.7.2 no OpenBSD aqui):

-T

Extended test mode. Check the validity of the configuration file, output the effective configuration to stdout and then exit. Optionally, Match rules may be applied by specifying the connection parameters using one or more -C options.

Esta opção foi adicionada a sshd para o OpenSSH 5.1 / 5.1p1 em 2008.

    
por 12.04.2018 / 17:35
0

se o requisito for fechar a conexão ssh após uma inatividade, o TMOUT no perfil do usuário é a opção

TMOUT: If set to a value greater than zero, TMOUT is treated as the default timeout for the read builtin. The select command terminates if input does not arrive after TMOUT seconds when input is coming
from a terminal. In an interactive shell, the value is interpreted as the number of seconds to wait for input after issuing the primary prompt. Bash terminates after waiting for that number of seconds if input does not arrive.

teste isso executando export $TMOUT=10 e aguarde 10 segundos para fechar a conexão.

    
por 12.04.2018 / 17:27
-1

Se você quiser que o tempo limite seja de 10 segundos para todos, faça o seguinte para a configuração do servidor (sshd_config):

ClientAliveInterval 10
ClientAliveCountMax 0

Se você quiser que o tempo limite seja de 10 segundos para clientes locais, faça o seguinte para a configuração do cliente (ssh_config):

ServerAliveInterval 10
ServerAliveCountMax 0

Se o parâmetro AliveCountMax for diferente de zero, provavelmente não funcionará porque o servidor responderá ao redefinir o cronômetro (a menos que haja um problema de conexão). Você pode ver isso executando o cliente ssh com a depuração ativada.

    
por 03.03.2017 / 19:35