Найти в Дзене
Обо всём и Linux

Увеличение времени ожидания SSH-соединения в Linux

Я иногда подключась к NAS и другим серверам через SSH, ну как понять иногда? Поянтно в рабочем порядке и т.д в основном через SSH, а на домашние девайсы - иногда, если прям что то надо поднастроить или проверить/протестить. При подключении по SSH бывает отвлёкся и всё... соединение прервалось. Окончилось время сессии при бездействии. Но это можно исправить, увеличить ограничение времени ожидания SSH и поддерживать сеанс SSH даже после некоторого бездействия. Это происходит, когда сервер или клиент отправляет пустые пакеты в другую систему, чтобы поддерживать сеанс в действии.  Смотрим как можно увеличить время ожидания SSH-соединения в Linux. Увеличьте время ожидания соединения SSH На сервере перейдите в файл конфигурации /etc/sshsshd_config. sudo nano /etc/ssh/sshd_config конечно, во всех дистрибутивах стоит редактор vi , но я использую для дома nano :) В открытом файле, прокручиваем вниз и находи следующие параметры, они будут закомментированы значком решеточка, просто тут при ввод
Оглавление

Я иногда подключась к NAS и другим серверам через SSH, ну как понять иногда? Поянтно в рабочем порядке и т.д в основном через SSH, а на домашние девайсы - иногда, если прям что то надо поднастроить или проверить/протестить.

При подключении по SSH бывает отвлёкся и всё... соединение прервалось. Окончилось время сессии при бездействии. Но это можно исправить, увеличить ограничение времени ожидания SSH и поддерживать сеанс SSH даже после некоторого бездействия. Это происходит, когда сервер или клиент отправляет пустые пакеты в другую систему, чтобы поддерживать сеанс в действии.  Смотрим как можно увеличить время ожидания SSH-соединения в Linux.

Увеличьте время ожидания соединения SSH

На сервере перейдите в файл конфигурации /etc/sshsshd_config.

sudo nano /etc/ssh/sshd_config

конечно, во всех дистрибутивах стоит редактор vi , но я использую для дома nano :)

В открытом файле, прокручиваем вниз и находи следующие параметры, они будут закомментированы значком решеточка, просто тут при вводе текста, данный символ сразу определяет как тег для слова:

ClientAliveInterval
ClientAliveCountMax

Параметр ClientAliveInterval указывает на время в секундах, в течение которого сервер будет ожидать, прежде чем отправлять нулевой пакет в клиентскую систему, чтобы сохранить соединение живым.

С другой стороны, параметр ClientAliveCountMax определяет количество живых сообщений клиента, которые отправляются без получения каких-либо сообщений от клиента. Если этот предел достигнут во время отправки сообщений, демон sshd прекратит сеанс, фактически завершив сеанс ssh.

Значение времени ожидания определяется произведением вышеуказанных параметров, т.е.

Timeout value = ClientAliveInterval * ClientAliveCountMax

Например, допустим, вы определили свои параметры, как показано:

ClientAliveInterval 1000
ClientAliveCountMax 2

Значение времени ожидания будет 1000 секунд * 2 = 2000 секунд. Это эквивалентно 33 минут, что означает, что ваш ssh-сеанс будет работать в течение простоя в течение 33 минут без сброса.

Кроме того, вы можете достичь того же результата, указав только параметр ClientAliveInterval.

ClientAliveInterval 2000

После этого перезагрузите демон OpenSSH, чтобы изменения вступили в силу.

sudo systemctl reload sshd

Итог

Для безопасности SSH всегда желательно не устанавливать значение тайм-аута SSH на большое значение, чтобы никто не смог перехватить сессию, когда вы отсутствовали в течение длительного периода времени.

#ssh #linuxterminal #linux