У машины Solaris, на которой мы делаем большую часть нашей разработки, есть раздражающая привычка отключать сеансы SSH по таймауту. Не имеет значения, является ли клиент моим рабочим столом Ubuntu, моим рабочим столом Solaris или моим рабочим столом Windows (замазка); общий фактор - большая машина Solaris.
Что я могу сделать, чтобы этого не произошло? Это раздражает, когда вы делаете перерыв на обед, а все терминальные сеансы, которые вы открыли и деликатно настроили, заморожены, поэтому вам нужно убить их все и восстановить весь свой контекст.
Да. Настройте SSH для отправки пакеты keepalive.
Я обнаружил, что поведение keepalive не совсем работает. Я попытался добавить ServerAliveInterval в сценарий ~ / .ssh / config, но это не очень хорошо работает с git.
В итоге я добавил отметку времени в строку состояния «экрана». Этого действия достаточно, чтобы поддерживать связь.
Вы также можете настроить Putty для отправки пакетов поддержки активности.
В настройках, подключении, секундах между сообщениями поддержки активности.
Во-первых, вам нужно определить, ваша оболочка выводит вас из системы или ssh. Для проверки введите ssh на удаленный компьютер и используйте vi или менее файл.
Если долгое время спустя вы все еще можете перемещаться по less / vi, тогда ssh в порядке. В этом случае определите, какую оболочку вы используете, и отключите тайм-аут. Скорее всего, это оболочка, которая отключает вас, а не SSH. Однако некоторые брандмауэры закрывают бездействующие сеансы, если сообщения keepalive не отправляются.
Администратор Solaris может запретить вам отключать тайм-аут в вашей оболочке, сделав параметр доступным только для чтения. Это маловероятно, но возможно. Обычно это можно обойти, используя другую оболочку.
Если у вас возникнут проблемы с повторной настройкой оболочки, вы можете использовать экран GNU. Если время вашего сеанса SSH истекло, просто войдите снова и подключитесь снова, и ваша оболочка будет такой, как была.
Если вы запустите tcsh на машине Solaris, можно установить переменную autologout. Если вы установите для него значение 0 (установите autologout = 0) или отключите его (отключите autologout), он остановит вас.
Это может быть отвлекающим маневром, но попробуйте
unset TMOUT
в приглашении вашей оболочки. Это определенно работало для меня в прошлом, но я не могу вспомнить, ограничено ли это определенными архитектурами (или оболочками).
Введите свой профиль оболочки
экспорт TMOUT = 0
экспорт TIMEOUT = 0
Ты мог бежать top
в другом терминале? Это должно генерировать регулярный трафик?
Спиннер звучит как идеальное решение вашей проблемы. Он периодически отправляет символы в вашем сеансе, чтобы не истекло время ожидания.
У меня всегда был успех с ClientAliveInterval 300 на серверах linux / bsd.
Проверьте свои sshd
конфигурация для таких линий в /etc/ssh/sshd_config
:
ClientAliveInterval 600
ClientAliveCountMax 0