Сетевой протокол прикладного уровня SSH и оболочка Secure Shell позволяют выполнять защищенное управление удаленным компьютером или сервером на платформе Linux, OS X и Windows. Интервал времени между открытием и закрытием сессии SSH по тайм-ауту представляет собой большую опасность для информационной системы. Если вы какой-то промежуток времени не выполняете никаких действий в оболочке Secure Shell, соединение может быть автоматически прервано и вам нужно будет снова войти в сессию. Интервал времени до тайм-аута определяется системными настройками протокола TCP, но может быть переопределен настройками серверного или клиентского программного обеспечения. Если вы видите, что SSH соединение прерывается по тайм-ауту слишком часто, то можете отредактировать конфигурацию SSH в сторону увеличения (или уменьшения) времени неактивной сессии.
Тайм-аут TCP
Тайм-аут сервера обычно совпадает с таймаутом TCP. Это происходит потому, что SSH сервер автоматически настраивае значение параметра TCP Keepalive, который определяет время, через которое посылаются запросы для проверки наличия соединения во время простоя. Это значение зависит от конкретной системы. В некоторых случаях этот интервал очень мал и составляет 5 секунд, в других может превышать два часа. В среднем же это значение находится в пределе от 3 до 5 минут. Это стандартное значение для большинства SSH сессий.
Общие настройки для серверов
Редактируя тайм-аут в конфигурационном файле sshd_config вы можете задать интервал отключения для каждого клиента, подключенного к серверу. Системный администратор UNIX-подобных ОС может найти этот файл так: /etc/ssh/sshd_config. Если вы используете терминальную сессию и хорошо знаете терминальные команды, то отредактировать файл можно, набрав следующее:
udo nano /etc/ssh/sshd_config
Добавьте в него опцию «ClientAliveInterval», которая будет указывать серверу, когда посылать пакет данных для проверки активности клиента. Вы также можете использовать другой параметр «ClientAliveCountMax», который определит, сколько раз может быть не получен ответ от клиента до обрыва сессии. Для примера покажем вам, как установить интервал отключения клиента через пять минут, после двух проверок его активности:
ClientAliveInterval 300
ClientAliveCountMax 2
Задаем тайм-аут на стороне клиента
Если вы используете клиентское приложение наподобие Putty, то можете самостоятельно изменить тайм-аут. Для этого зайдите в раздел меню «Connection» и в окне настроек найдите пункт «Seconds Between Keepalives». Укажите в текстовом поле время, которое вы хотите, в секундах. Этот интервал зависит от того, сколько времени неактивная SSH сессия должна быть соединенной с сервером. Кроме того этот интервал можно задать на клиентской стороне, внеся изменения в файл «/etc/ssh/ssh_config». Не путайте его с файлом конфигурации на сервере – «sshd_config».