Я знаю, что это общая проблема с известным решением. Быстрый веб-поиск приводит ко многим результатам, которые указывают на параметры ServerAliveInterval
(или, реже, ClientAliveInterval
стороне сервера ). Установка одного из них на произвольное значение, такое как 15, 60 или 120, решит проблему со сломанной трубой.
У меня вопрос почему? Почему это происходит в первую очередь? Кто закрывает розетку?
У меня есть сомнения по поводу того, что ОС прерывает соединение из-за неактивности, учитывая тот факт, что по умолчанию включена опция TCPKeepAlive
, которая заставляет отправлять сообщения поддержки активности TCP, чтобы обнаружить отключение клиентов в автономном режиме. Поэтому ОС все равно не увидит соединение неактивным.
В этом случае, это сам sshd
, который синхронизирует их? И если так, то почему этот тайм-аут не задокументирован или не настраивается? А если для поддержания SSH-соединений необходимы открытые сообщения уровня приложения, то почему они не включены по умолчанию?
Эти вопросы всегда пропускаются, когда эта проблема появляется на дискуссионных форумах. Может кто-нибудь пролить некоторый свет на это?