Как мне разрешить ssh-соединение, закрытое удаленным хостом из-за неактивности?

14

В настоящее время я пытаюсь 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, это не имеет отношения.

Тьерри Лам
источник

Ответы:

17

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

TCPKeepAlive yes
ServerAliveInterval 30
balkian
источник
невозможно найти конфигурационный файл на сервере
insoftservice
Вы можете создать файл в своем домашнем каталоге, если он не существует
Balkian
9

Если вы подключаетесь с компьютера 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

Источник

ricciocri
источник
0

Вам нужно "keepalive"

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

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

Эндрю
источник
Где я могу установить keepalive? На сервере или с моего mac? Где я должен установить это значение и какое рекомендуемое значение?
Тьерри Лам
Keepalive будет на клиенте ... в вашем случае, на вашем Mac. Там будет вариант где-то!
Андрей