Тайм-аут SSH после нескольких минут бездействия

Тайм-аут SSH после нескольких минут бездействия

Сегодня я собираюсь написать об еще одной интересной проблеме, которая может привести к тайм-ауту SSH-соединения, и о том, как увеличить тайм-аут SSH-соединения в macOS, Linux, *BSD и Unix-подобных системах.

Сам я столкнулся с этим после массового обновления до Debian 12.

По сути, это функция безопасности. Ssh-соединение зависает или прерывается после N минут бездействия. Согласно официальной странице руководства OpenSSH:

Обычно это происходит из-за того, что фильтр пакетов или устройство NAT отключили ваше TCP-соединение из-за неактивности. В целях безопасности большинство предприятий используют только протокол SSH версии 2. Эта проблема возникла только с версией 2.

Если вы работаете много часов, используя SSH, и оставляете рабочую станцию ​​для какой-то другой работы, ваше соединение будет разорвано удаленным сервером. Меня это немного раздражает. Поэтому мы можем избавиться от этой проблемы следующим образом. Для просмотра текущих настроек используйте команду grep или команду egrep :egrep -i 'ClientAliveInterva|ClientAliveCountMax' /etc/ssh/sshd_config

Исправлено разрыв соединения с сервером OpenSSH после нескольких минут бездействия.

Сначала войдите на удаленный сервер, а затем откройте файл /etc/ssh/sshd_config с помощью команды sudo и текстового редактора по вашему выбору:sudo vi /etc/ssh/sshd_config
Измените настройки следующим образом: Где,
ClientAliveInterval 30
ClientAliveCountMax 5

  • ClientAliveInterval: устанавливает интервал ожидания в секундах (30), по истечении которого, если от клиента не было получено данных, sshd отправит сообщение через зашифрованный канал для запроса ответа от клиента. Значение по умолчанию — 0, что означает, что эти сообщения не будут отправляться клиенту. Эта опция применима только к протоколу версии 2.
  • ClientAliveCountMax: устанавливает количество активных сообщений клиента (5), которые могут быть отправлены без получения sshd каких-либо сообщений от клиента. Если этот порог достигнут во время отправки сообщений об активности клиента, sshd отключит клиент, завершив сеанс.

Закройте и сохраните файл . Далее перезапустите службу sshd , запустите:
/etc/init.d/ssh restart
## OR ##
service sshd restart
## For Linux+systemd ##
systemctl restart sshd.service

Увеличьте время ожидания SSH-соединения, используя конфигурацию на стороне клиента.

Следующий параметр полезен, когда вы не можете редактировать файл /etc/ssh/sshd_config на удаленном сервере из-за проблем с разрешениями. Следовательно, вы редактируете клиентский файл ~/.ssh/ssh_config на рабочем столе Linux, UNIX, *BSD или macOS.

Другой вариант — включить опцию ServerAliveInterval в файле клиента $HOME/.ssh/ssh_config. Очень полезно, когда у вас нет доступа к файлу конфигурации sshd удаленных серверов. Откройте приложение терминала и введите следующую команду:
vi ~/.ssh/ssh_config
Добавьте/измените значения следующим образом: Где,
ServerAliveInterval 15
ServerAliveCountMax 3

  • ServerAliveInterval 15: устанавливает интервал таймаута в секундах, по истечении которого, если данные не были получены от сервера, ssh отправит сообщение через зашифрованный канал для запроса ответа от сервера. Например, установите тайм-аут на 15 секунд.
  • ServerAliveCountMax 3: устанавливает количество активных сообщений сервера, которые могут быть отправлены без получения командой ssh ​​каких-либо сообщений от сервера. Если этот порог достигнут во время отправки сообщений о работоспособности сервера, ssh отключится от сервера, завершив сеанс. Сообщения сервера отправляются по зашифрованному каналу и поэтому не поддаются подделке.

Например, если ServerAliveIntervalустановлено значение 15 и ServerAliveCountMaxоставлено значение 3, то если сервер перестанет отвечать на запросы, ssh отключится примерно через 45 секунд. Опять же, эта опция применима только к протоколу версии 2. Вы также можете добавить вышеуказанные параметры в файл /etc/ssh/ssh_config на стороне клиента для всех пользователей.


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Unlix © Все права защищены 2024

Копирование материалов с сайта Unlix.ru без указания полной ссылки на источник ЗАПРЕЩЕНО!