Тайм-аут простоя сессии SSH

9

Машина Solaris, на которой мы работаем большую часть нашей разработки, имеет раздражающую привычку тайм-аутов SSH-сеансов. Не имеет значения, является ли клиент моим рабочим столом Ubuntu, моим рабочим столом Solaris или моим рабочим столом Windows (putty); общий фактор - большая машина Solaris.

Могу ли я что-нибудь сделать, чтобы это не произошло? Это раздражает, когда вы берете перерыв на обед, и терминальные сессии, которые вы открываете и деликатно настраиваете, все заморожены, поэтому вам нужно убить их всех и восстановить весь ваш контекст.

Эндрю
источник

Ответы:

8

Да. Настройте SSH для отправки пакетов поддержки активности .

Софи Альперт
источник
У нас уже есть KeepAlive Yes в / etc / ssh / sshd_config. У него не было значения ClientAliveInterval, хотя; так что я добавил это, и мы посмотрим, как это пойдет.
Эндрю
1
Также стоит отметить, что вы можете сделать это и наоборот. Если вы не можете изменить конфигурацию сервера, вы можете заставить клиента ssh отправлять пакеты поддержки активности, используя ServerAliveInterval.
SpoonMeiser
Местоположение этой статьи изменилось. Вот текущий: forumone.com/blogs/post/quick-tip-ssh-keepalive
Джон Башир
2

Я обнаружил, что поведение keepalive не совсем работает. Я попытался добавить ServerAliveInterval в сценарий ~ / .ssh / config, но он не очень подходит для git.

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

Эндрю
источник
Если вы хотите использовать эту функцию вне экрана (1), посмотрите Spinner
Drew Stephens
1

Вы можете настроить Putty для отправки пакетов поддержки активности.

В Настройках, Соединение, Секунды между keepalive.

justinhj
источник
1

Во-первых, вам нужно определить, является ли ваша оболочка, которая выводит вас из системы, или ssh. Чтобы проверить, подключитесь по ssh к вашей удаленной машине и найдите файл vi или менее.

Если в течение долгого времени вы все еще можете перемещаться меньше / vi, то с ssh все в порядке. В этом случае определите, какую оболочку вы используете, и отключите тайм-аут. Скорее всего, это таймер, а не SSH. Тем не менее, некоторые брандмауэры будут закрывать пустые сеансы, если сообщения об активности не отправляются.

Администратор Solaris может запретить отключение тайм-аута в вашей оболочке, установив этот параметр только для чтения. Это маловероятно, но возможно. Обычно вы можете обойти это, используя другую оболочку.

brianegge
источник
1

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

staticsan
источник
0

Если вы запустите tcsh на компьютере Solaris, можно установить переменную autologout. Если вы установите его на 0 (установите autologout = 0) или отмените его (unset autologout), он прекратит выход из системы.

Джимми Хедман
источник
0

Это может быть красная сельдь, но попробуйте

unset TMOUT

в вашей командной строке. Это, конечно, работало для меня в прошлом, но я не могу вспомнить, ограничено ли это определенными архитектурами (или оболочками).

др-Январь
источник
0

Введите свой профиль оболочки

экспорт TMOUT = 0

TIMEOUT экспорта = 0

setatakahashi
источник
0

Вы могли бы запустить topв другом терминале? Что должно генерировать регулярный трафик?

Рори
источник
0

Spinner звучит как идеальное решение вашей проблемы. Он периодически отправляет символы в вашем сеансе, чтобы не допустить его истечения.

Дрю Стивенс
источник
-1

У меня всегда был успех с «ClientAliveInterval 300» на серверах Linux / BSD.

AFA
источник
-1

Проверьте свою sshdконфигурацию для линий, подобных этим в /etc/ssh/sshd_config:

ClientAliveInterval 600
ClientAliveCountMax 0
Фрэнк
источник