Поддержание сеанса 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 каждые