Как соединение SSH становится неактивным?

Как соединение SSH становится неактивным?

Я настроил SSH-подключение для запуска программы на удаленном сервере. Программа выводит отладочную информацию на терминал каждые 10 секунд. Если я оставлю окна SSH открытыми на долгое время (скажем, 10 часов), станет ли SSH-подключение неактивным? Как определяется активность в сеансе SSH? Должен ли я вводить/запускать команду каждые x секунд, чтобы сеанс оставался активным?

решение1

Вам не придется делать ничего особенного, SSH не прерывает соединение из-за бездействия. Поэтому период бездействия не определенв пределахСШ.

Однако одно из устройств на сетевом маршруте между вами и вашим сервером может потерять маршрут, и для этого обычно достаточно активности с одной стороны, но не всегда (существуют «пакеты подтверждения прибытия», подтверждения, возвращающиеся на сервер от клиента при использовании TCP).
Трафик с обеих сторон не гарантирует непрерывного соединения, если у вас есть модем DSL и ваш провайдер решает, что вы получаете новый IP-адрес каждый день, соединение будет разорвано.

Вы можете заставить своего клиента регулярно отправлять пакеты, вставив

ServerAliveInterval 5

или /etc/ssh/ssh_configу вас ~/.ssh/configбудет трафик от клиента к серверу каждые 5 секунд в дополнение к трафику, поступающему от сервера каждые 10 секунд.

Более простое «решение» проблемы сброса соединения DSL-модема — запуск программного обеспечения на стороне сервераtmuxилиscreen: если соединение разорвано, вы просто снова подключаетесь к серверу по SSH, выполняете команду tmux attachили screen -rи можете продолжать бесперебойно просматривать программу сервера.

Использование tmux/ screenособенно полезно, если вы не так сильно беспокоитесь о потере соединения, как о последствиях остановки серверной программы в этом случае. Для этого вы также можете перенаправить вывод исходной программы в файл и использовать tail -f, но это не позволит вам легко взаимодействовать с серверной программой (если это необходимо). tmuxи screen(в их базовых формах) просты в использовании, но имеют некоторые побочные эффекты, такие как невозможность прокрутки назад с помощью ползунков на вашем графическом терминале (вам нужно использовать сочетания клавиш, чтобы сервер прокручивал назад в своем буфере для этого).

Более гибкое решение для устройств, разрывающих соединение, — это использоватьmosh. Это использует SSH для обмена некоторой секретной информацией, а затем позволяет повторное присоединение, даже если один или оба IP-адреса меняются. Однако это сложнее настроить и заставить работать.

В вашем случае я бы начал с использования tmuxи вручную переподключился, когда соединение действительно отключится.

решение2

также очень полезно использовать команду SCREEN. С ней вы можете запустить любую команду и не беспокоиться о вашем ssh-подключении.

Связанный контент