SSH (Secure Shell) остаётся основным инструментом для безопасного удалённого доступа к серверам под управлением Linux и других Unix-подобных систем. OpenSSH продолжает активно развиваться, но проблема преждевременного разрыва соединения из-за тайм-аута по-прежнему актуальна — особенно при длительной работе в терминале, выполнении долгих команд или нестабильном соединении.
В этой статье мы разберём проверенные способы поддержания активности SSH-сессии как можно дольше. Все рекомендации совместимы с современными версиями OpenSSH (включая 9.x и выше).

Почему SSH-сессия разрывается
Разрыв соединения обычно происходит по инициативе сервера: демон sshd закрывает неактивное соединение после определённого времени простоя. Это защитный механизм, но он может быть неудобен при выполнении длительных задач.
Причины:
- Отсутствие трафика между клиентом и сервером.
- Настройки тайм-аута на стороне сервера (
sshd) или клиента. - Проблемы сети (NAT, файрволы, промежуточные роутеры).
Решение — настроить отправку «keep-alive» пакетов, чтобы соединение считалось активным.
Настройка на стороне клиента (рекомендуемый способ)
Самый простой и безопасный способ — изменить конфигурацию клиента. Файл находится по пути ~/.ssh/config. Если его нет, создайте:
touch ~/.ssh/config
chmod 600 ~/.ssh/configДобавьте следующие строки:
Host *
ServerAliveInterval 120
ServerAliveCountMax 5ServerAliveInterval 120— клиент будет отправлять keep-alive запрос каждые 120 секунд бездействия.ServerAliveCountMax 5— если сервер не ответит на 5 запросов подряд, соединение разорвётся.

Если нужно применить настройки только к конкретному хосту:
Host example.com
ServerAliveInterval 120
ServerAliveCountMax 5После изменений переподключитесь — настройки применятся автоматически.
Настройка на стороне сервера
Если у вас есть доступ к серверу, отредактируйте файл /etc/ssh/sshd_config:
sudo nano /etc/ssh/sshd_configДобавьте или раскомментируйте:
ClientAliveInterval 120
ClientAliveCountMax 5ClientAliveInterval 120— сервер отправляет keep-alive клиенту каждые 120 секунд.ClientAliveCountMax 5— разрыв после 5 неотвеченных запросов.
После сохранения перезапустите службу:
sudo systemctl restart sshd
Дополнительные способы и альтернативы
Временное решение в текущей сессии
Можно передать параметры при подключении:
ssh -o ServerAliveInterval=120 -o ServerAliveCountMax=5 user@hostИспользование tmux или screen
Для полной независимости от разрывов соединения рекомендуется использовать терминальные мультиплексоры:
tmux— современный и популярный выбор.screen— классика.
Они позволяют «отсоединить» сессию и вернуться к ней позже даже после разрыва SSH.

Альтернатива SSH — Mosh
Mosh (Mobile Shell) устойчив к нестабильным соединениям и автоматически восстанавливается после разрыва сети. Устанавливается отдельно и совместим с SSH-ключами.
Заключение
Настройки ServerAliveInterval и ClientAliveCountMax — надёжный способ избежать неожиданных разрывов SSH-сессии. Рекомендуемые значения: 60–300 секунд для интервала и 3–10 для максимального количества попыток — подберите под свою сеть.
Для максимальной надёжности сочетайте keep-alive с tmux/screen.
Если у вас остались вопросы — пишите в комментариях!
Читайте также
- Termius — SSH-клиент
- Управление процессами Linux
- Midnight Commander — консольный файловый менеджер в Linux
- Сетевое агрегирование (Channel Bonding / NIC Teaming) в Linux
- Как найти устройства, подключенные к вашей сети в Linux
Было ли это полезно?
0 / 0