8

В настоящее время я пытаюсь ssh к colo, после 1-2 минут бездействия я получаю:

superuser@thecolo:~$ Connection to 10.123.45.67 closed by remote host.
Connection to 10.123.45.67 closed.
mylocalmac:~ superuser$

Пока я что-то печатаю в терминале ssh, соединение сохраняется. Как только наступит 1-2 минуты бездействия, я получу вышеуказанное сообщение. Компьютер, к которому я пытаюсь подключиться, - это 64-битная версия сервера Ubuntu 12.04.1 LTS. Это не физический сервер, а гостевой VMware. Я использую терминал Mac.

Пожалуйста, не путайте этот вопрос с аналогичными на этом сайте с ключевым словом ssh_exchange_identification в нем, он не имеет отношения.

3 ответа3

13

Добавьте следующее в ваш .ssh/config и все ваши ssh-соединения будут отправлять TCPKeepAlive каждые 30 секунд:

TCPKeepAlive yes
ServerAliveInterval 30
6

Если вы подключаетесь с компьютера Linux, вы можете использовать некоторые параметры прямо из командной строки

TCPKeepAlive: при этом используется опция KEEPALIVE протокола TCP/IP, чтобы поддерживать соединение активным после указанного интервала бездействия. На большинстве систем это означает 2 часа. Таким образом, с опцией TCPKeepAlive, переданной в SSH, клиент SSH отправит зашифрованный пакет на сервер SSH, поддерживая ваше соединение TCP в рабочем состоянии.

ssh -o TCPKeepAlive=yes user@some.host.com

ServerAliveInterval: задает указанный вами интервал времени в секундах, из которого, если никакие пакеты не отправляются с SSH-клиента на SSH-сервер, SSH отправляет зашифрованный запрос на сервер для ответа TCP. Чтобы сделать этот запрос каждые 30 секунд:

ssh -o ServerAliveInterval=30 user@some.host.com

Источник

0

Вам нужно "keepalive"

В зависимости от вашего клиента, это может быть тривиально или просто - это не должно быть сложнее!

Например, в putty это опция соединения (установите для keepalive ненулевое значение)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .