SSH соединение идет вниз автоматически по истечении определенного периода времени , установленного ClientAliveInterval
и ClientAliveCountMax
параметров и их стороне клиента эквиваленты. Если эти таймауты достаточно велики, вы увидите замороженную раковину. Однако, если вы используете, OpenSSH
вам не нужно ждать тайм-аут и можете принудительно закрыть соединение, используя 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.
(...)
Когда соединение замерзнет, нажмите ~(что означает Shift+ `клавиши вместе), отпустите его и нажмите .. Кроме того, если вы работаете с нестабильным соединением или вам необходимо постоянно подключаться к удаленному серверу, вы можете использовать autossh для автоматического восстановления потерянного соединения, это очень удобно.
РЕДАКТИРОВАТЬ :
Однако, если оба ClientAliveInterval
и ServerAliveInterval
имеют значение 0 в явном или не заданы явно , а затем устанавливается в 0 по умолчанию в соответствии с sshd_config
и ssh_config
страницы Справочника, настройки времени ожидания устанавливаются в следующих файлах (от 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.
Вы можете изменить эти 3 файла, просто используя echo
и убедившись, что замороженный сеанс SSH отключен в соответствии с этими значениями.
Enter
~
.
последовательности, которая завершает соединение./proc/sys/net/ipv4/tcp_keepalive*
файлы иClientAliveInterval
иServerAliveInterval
работать вместе? Они все для одних и тех же настроек, т.е. для поддержания связи через ssh? Эти файлы не только для ssh-соединений, но и для других TCP-соединений?/proc/sys/net/ipv4/tcp_keepalive*
не только для,ssh(d)
но и как сказано в документе, на который яRemember 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
на удаленном или удалите кабель и проверьте, когда замороженныйssh
сеанс выйдет сам. Кfrozen shell
I средней оболочки , которая является неактивным, не принимает никаких ключей и ничего не печатает.