A conexão SSH é desativada automaticamente após um período de tempo especificado por ClientAliveInterval
e ClientAliveCountMax
parâmetros e seus equivalentes no lado do cliente. Se esses tempos limite forem muito altos, você experimentará uma concha congelada. No entanto, se você usar OpenSSH
, não precisará esperar um tempo limite e poderá 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 congelar, pressione ~(que significa as teclas Shift+ `juntas), solte-o e pressione .. Como alternativa, se você trabalha com uma conexão instável ou precisa estar conectado ao servidor remoto o tempo todo, pode usar o autossh para renovar automaticamente a conexão perdida, é muito conveniente.
EDIT :
No entanto, se ambos ClientAliveInterval
e ServerAliveInterval
são definidos como 0 explicitamente ou não são definidos explicitamente e são definidos como 0 por padrão, de acordo com sshd_config
e ssh_config
manpages, as configurações de tempo limite são definidas nos seguintes arquivos (em http://tldp.org/HOWTO/TCP- Keepalive-HOWTO / usingkeepalive.html ):
# 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 três arquivos apenas usando echo
e veja que uma sessão SSH congelada é desconectada de acordo com esses valores.
Enter
~
.
a sequência que encerra a conexão./proc/sys/net/ipv4/tcp_keepalive*
arquivos eClientAliveInterval
eServerAliveInterval
trabalhar juntos? Eles são todos para as mesmas configurações, ou seja, para manter a conexão ssh ativa? Os arquivos anteriores não são apenas para conexões ssh, mas também outras conexões TCP?/proc/sys/net/ipv4/tcp_keepalive*
não são apenas para,ssh(d)
mas como diz o documento ao qualRemember that keepalive support, even if configured in the kernel, is not the default behavior in Linux. Programs must request keepalive control for their sockets using the setsockopt interface. There are relatively few programs implementing keepalive, but you can easily add keepalive support for most of them following the instructions explained later in this document.
sshd
-o ou remova um cabo e verifique quando uma sessão congeladassh
sairá sozinha. Porfrozen shell
I shell média que está inativo, não tomar quaisquer chaves e não imprime nada.