Як вирішити ssh-з'єднання, закрите віддаленим хостом через неактивність?


14

Наразі я намагаюсь перейти до колориту, після 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. Я sshing з mac-терміналу.

Будь ласка, не плутайте це питання з подібними на цьому веб-сайті з ключовим словом ssh_exchange_identificationна ньому, воно не пов'язане.

Відповіді:


17

Додайте наступне до свого $ HOME / .ssh / config і всі ваші ssh-з'єднання надсилатимуть TCPKeepAlive кожні 30 секунд:

TCPKeepAlive yes
ServerAliveInterval 30

не вдалося знайти конфігураційний файл на сервері
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

Джерело


0

Вам потрібно "зберегти"

Залежно від вашого клієнта, це може бути тривіально чи просто - це не повинно бути складніше!

Наприклад, у putty знаходиться опція підключення (встановіть значення keepalive на нульове значення)


Де я встановив кипарив? На сервері чи від мого Mac? Де я повинен встановити це значення і яке рекомендоване значення?
Тьєррі Лам

Keepalive буде на клієнті ... у вашому випадку ваш Mac. Десь буде варіант!
Андрій
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.