Поддержание сеанса Cygwin SSH в живых

У меня возникла небольшая проблема с доступом к удаленным серверам RedHat с компьютера под управлением Windows с использованием клиента Cygwin SSH.

Что я делаю, так это запускаю довольно трудоемкие сценарии QA на удаленной машине RedHat, входя в систему с домашней машины Windows. На стороне клиента я использую Cygwin SSH в обычном консольном окне Cygwin. Пока я работаю в интерактивном режиме (т.е. выполняю команды из командной строки), все в порядке. Когда я запускаю скрипт, все работает нормально, пока скрипт производит какие-либо видимые действия на терминале, то есть, пока он выводит что-то на экран. Но если в выводе имеется значительная пауза, соединение с машиной RedHat в конечном итоге прерывается сообщением "Ошибка записи: сброс соединения по одноранговой сети".

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

3 ответа

Решение

Изменить время ожидания:

Настроить сервер

Откройте файл /etc/ssh/sshd_config и найдите параметр ClientAliveInterval (если его там нет, добавьте его). Значение в секундах, поэтому я пошел с 540 секунд или 9 минут.

ClientAliveInterval 540

Настроить клиент

Отредактируйте /etc/ssh/ssh_config и найдите параметр ServerAliveInterval (если его там нет, добавьте его). Опять же, это значение указано в секундах, поэтому 9-минутный интервал составляет 540 секунд.

ServerAliveInterval 540

Кроме того, autossh может быть вашим хорошим другом.

Скорее всего, это тайм-аут; чтобы предотвратить это, вы можете использовать следующие настройки в ~/.ssh/config

ServerAliveInterval <keepalive-interval>

отправлять пакет keepalive каждые секунды.

Я уверен, что эта и эта ссылки будут полезны.

Другие вопросы по тегам