использование "vim" может привести к тайм-ауту ssh, но "top" не - PullRequest
1 голос
/ 05 марта 2012

Когда я использую ssh для входа на удаленный сервер и открываю vim, если я не набираю какие-либо слова, сессия истекает, и я должен снова войти в систему. Но если я выполню команду наподобие top, сессия никогда не остановится? В чем причина?

Ответы [ 3 ]

1 голос
/ 05 марта 2012

vim будет просто сидеть там в ожидании ввода, и (если у вас нет часов или чего-то еще на экране терминала), также не будет выводиться.Если это будет продолжаться очень долго, большинство брандмауэров увидят соединение как разорванное и уничтожат его, так как нет активности.

Вверх, для сравнения, обновляет экран каждые несколько секунд, что рассматривается как активностьсоединение остается открытым, поскольку по нему регулярно передаются данные IS.

Существуют параметры, которые можно добавить в конфигурацию сервера SSH для отправки временных "нулевых" пакетов, чтобы поддерживать соединение в действии, даже если фактическоепользовательские данные переходят по ссылке: http://www.howtogeek.com/howto/linux/keep-your-linux-ssh-session-from-disconnecting/

1 голос
/ 05 марта 2012

Обратите внимание, что поведение, которое вы видите, не связано с vim или top. Скорее всего, хороший маршрутизатор отбирает «мертвые» сеансы TCP. Это часто делается с помощью NAT firewall или stateful firewall для уменьшения нагрузки на память и защиты от простых атак типа "отказ в обслуживании".

Вероятно, опция конфигурации ServerAliveInterval может не дать вашим сеансам, которые выглядят без дела:

 ServerAliveInterval
         Sets a timeout interval in seconds after which if no
         data has been received from the server, ssh(1) will
         send a message through the encrypted channel to request
         a response from the server.  The default is 0,
         indicating that these messages will not be sent to the
         server, or 300 if the BatchMode option is set.  This
         option applies to protocol version 2 only.
         ProtocolKeepAlives and SetupTimeOut are Debian-specific
         compatibility aliases for this option.

Попробуйте добавить ServerAliveInterval 180 в файл ~/.ssh/config. Это будет запрашивать проверки активности каждые три минуты, что должно быть быстрее, чем многие таймауты брандмауэра.

0 голосов
/ 05 марта 2012

Поскольку «top» всегда возвращает данные через вашу консоль SSH, он останется активным.

«vim» не будет, потому что он статический и передает данные только в соответствии с вашими нажатиями клавиш.

Отсутствие переданных данных приводит к превышению времени ожидания сеанса SSH

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...