У меня возникла проблема с зависанием сеанса SSH после его повторного использования, если он некоторое время не использовался.
Проблема в том, что сеанс не замораживается немедленно, я все еще могу его использовать. Но как только команда отправляет больше данных, он замораживается до того, как поступает какой-либо вывод, и мне приходится перезапускать терминал.
Если читал более ранние решения по MTU, но там сессия зависает каждый раз. Здесь это происходит только после периода бездействия.
Обратите внимание, что я установил ServerAliveInterval 120
в .ssh/ssh_config
Есть ли какие-нибудь подсказки, как решить эту проблему?
решение1
Измените ~/.ssh/ssh_config
на ~/.ssh/config
. Убедитесь, что разрешения для него 700.
Этотобсуждениемного полезной информации. Вы также можете перейти по тегу ssh
(просто нажмите на /ssh под вашим вопросом), чтобы перейти натег викидля получения дополнительной информации и рекомендаций по устранению неполадок.
решение2
Предложения:
- Попробуйте задать параметры
ServerAliveInterval
,ServerAliveCountMax
, иTCPKeepAlive
в командной строке вместо черезssh_config
, чтобы исключить проблему чтения ваших настроек. Возможно, вместо этогоssh_config
следует вызвать простоconfig
? - Используйте подробный флаг (более одного раза), чтобы увеличить вероятность появления пояснительного сообщения об ошибке.
- Прежде чем завершать сеанс SSH , убедитесь, что
ServerAliveInterval
*ServerAliveCountMax
меньше порогового значения времени простоя брандмауэра (обратитесь к администратору сети). - Если сервер ваш, вы можете попробовать использовать
ClientAlive*
там опции -options. - Проверьте несовместимость версий, если OpenSSH не установлен на клиенте и сервере.
решение3
вы можете настроить своего клиента на отправку сообщений tcp keep alive. Я знаю, что это находится в параметрах подключения в putty. Не уверен насчет параметров командной строки, но это решило для меня, когда у меня были проблемы. Хотя это сработало только на машинах win7 в школе.