A conexão SSH é desativada automaticamente após um período de tempo especificado pelos parâmetros ClientAliveInterval
e ClientAliveCountMax
e seus equivalentes no lado do cliente. Se esses tempos limite forem muito altos, você terá uma casca congelada. No entanto, se você usar OpenSSH
, não precisará aguardar um tempo limite e forçar o fechamento de uma conexão usando caracteres de escape :
ESCAPE CHARACTERS
When a pseudo-terminal has been requested, ssh supports a number
of functions through the use of an escape character. A single
tilde character can be sent as ~~ or by following the tilde by a
character other than those described below. The escape character
must always follow a newline to be interpreted as special. The
escape character can be changed in configuration files using the
EscapeChar configuration directive or on the command line by the
-e option.
The supported escapes (assuming the default ‘~’) are:
~.
Disconnect.
(...)
Quando a conexão congela, pressione ~ (ou seja, as teclas Shift + ' juntas), libere-a e pressione . . Alternativamente, se você trabalha com uma conexão instável ou precisa estar conectado ao servidor remoto o tempo todo, você pode usar o autossh para renovar automaticamente a conexão perdida, é muito conveniente.
EDITAR :
No entanto, se ClientAliveInterval
e ServerAliveInterval
forem definidos como 0 explicitamente ou não forem definidos explicitamente e forem definidos como 0 por padrão de acordo com as páginas de manual sshd_config
e ssh_config
, as configurações de tempo limite serão definidas nas seguintes arquivos (de link ):
# cat /proc/sys/net/ipv4/tcp_keepalive_time
7200
# cat /proc/sys/net/ipv4/tcp_keepalive_intvl
75
# cat /proc/sys/net/ipv4/tcp_keepalive_probes
9
The first two parameters are expressed in seconds, and the last is
the pure number. This means that the keepalive routines wait for
two hours (7200 secs) before sending the first keepalive probe,
and then resend it every 75 seconds. If no ACK response is
received for nine consecutive times, the connection is marked as
broken.
Você pode modificar esses 3 arquivos usando apenas echo
e perceber que uma sessão SSH congelada está desconectada de acordo com esses valores.