Существует несколько способов противодействия потере соединения для сеансов SSH.
Во-первых, вы можете установить параметры ServerAliveInterval, ClientAliveInterval и ClientAliveCountMax. ServerAliveInterval - это количество секунд, в течение которых клиент будет ждать перед отправкой на сервер пустого пакета (чтобы сохранить соединение), обычно значение 60. ClientAliveInterval - это количество секунд, которое сервер будет ожидать перед отправкой пустого пакета клиенту. Наконец, ClientAliveCountMax - это число ClientAliveInterval, в котором клиенту разрешено оставаться в сети перед разрывом соединения; по умолчанию - 3, что означает трехкратный промежуток времени ClientAliveInterval.
Кроме того, вы можете использовать Mosh, мобильную оболочку, которая ...
разрешает роуминг, поддерживает прерывистое соединение и обеспечивает интеллектуальное локальное эхо и линейное редактирование нажатий клавиш пользователя. Mosh - это замена SSH. Он более надежный и отзывчивый, особенно по Wi-Fi, сотовой связи и междугородной связи.Mosh - бесплатное программное обеспечение, доступное для GNU/Linux, FreeBSD, Solaris, Mac OS X и Android.
И тогда вы можете использовать autossh вместо ssh:
autossh - автоматически перезапускает SSH-сессии и туннели.
Какой путь вы выберете, зависит в основном от вкусов. Что касается меня, я использую autossh для туннелей, которые я хочу иметь постоянно, особенно обратные туннели; Я использую mosh для действительно пагубных связей, например, когда ssh'ing в мою лабораторию с самолета или автомобиля. Для всех остальных случаев разумный выбор вышеуказанных параметров для openssh подойдет: например, мой файл .ssh/config содержит следующие строки:
Host *
ServerAliveInterval 60
IdentitiesOnly yes
и аналогично для серверов, в файле /etc/sshd_config.
И, кстати, для мониторинга вашего соединения в течение длительных периодов времени вы можете использовать mtr (= My TraceRoute), умную комбинацию traceroute и ping, которая будет выполнять трассировку каждые столько секунд (по умолчанию = 1 секунда) до данный сайт, и будет плавно обновлять статистику успешных пингов, давая вам возможность установить хотя бы среднюю долю времени безотказной работы, а не их распределение.