Когда/почему SSH закрывает соединение?

Когда/почему SSH закрывает соединение?

У меня есть сервер CentOS, к которому я подключаюсь по SSH с моего ноутбука Windows, либо вручную с помощью Putty, либо программно с помощью модуля Python Fabric.

Иногда после определенного периода бездействия соединение закрывается.

Мой главный вопрос: когда/почему? Где настройки, которые определяют, когда SSH-соединение должно быть закрыто? Каковы значения по умолчанию, если ничего не установлено? Я просто хотел бы понять логику, которая лежит в основе закрытия моего соединения... иногда кажется, что оно позволяет соединению оставаться открытым в течение более 12 часов бездействия, а иногда кажется, что оно закрывается всего через ~30 минут бездействия.

Второстепенный вопрос: есть ли способ заставить Putty оставаться открытым? Сейчас Putty просто сообщает мне, что соединение закрыто, и предлагает закрыть окно. Есть ли способ заставить Putty просто перезапустить соединение, а не требовать от меня закрывать окна и вручную повторно входить в систему?

решение1

Вероятно, вы настроили ClientAliveCountMax 0какую-то ClientAliveIntervalопцию sshd_config(или используете какое-то значение по умолчанию).

Установка этих значений на ненулевые значения позволит серверу отправлять сообщения проверки активности, которые будут подтверждать, что клиент все еще отвечает.

Аналогичная опция должна быть на клиенте (в openssh она называется) ServerAliveCountMaxи ServerAliveInterval).

Такое поведение может быть также достигнуто при использовании клиентской опции TCPKeepAliveи на сервере, но по умолчанию она включена.

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