Как сохранить соединение SSH живым?


12

Как я могу сохранить соединение SSH без активного его использования. Когда я использую его, он работает нормально, но когда я не использую его в течение нескольких минут, он отключается. Когда я получаю электронное письмо при каждом подключении, как мне поддерживать сеанс SSH?

Примечание: в моем .ssh/configфайле вверху у меня есть

Host *
ServerAliveInterval 3

но это не похоже на работу.


Какой SSH клиент? 3 слишком короткий, используйте интервал 60. Вы также можете поместить это в / etc / ssh / ssh_config, если у вас есть root-доступ.
Пантера

*должно быть все из них, не так ли?
NerdOfLinux

Я не думаю, что работает с PuTTY
Panther

1
Проверьте следующий URL для получения инструкций PuTTy a2hosting.com/kb/getting-started-guide/accessing-your-account/…
A. El-Ghareeb

Ответы:


11

Вам необходимо указать количество попыток и интервал отправки пакета на сервер. Вы можете поместить следующие строки в ваш .ssh/configфайл:

Host examplehost
    Hostname examplehost.com
    ServerAliveInterval 180
    ServerAliveCountMax 2

Это будет отправлять пакет на сервер каждые 180 секунд (3 минуты), и он будет пытаться дважды, прежде чем он закроет соединение после получения ответа от клиента.


2
Я полностью забыл о том ServerAliveCountMax, что, вероятно, и решило мою проблему.
NerdOfLinux

5

В операционных системах Linux и Apple Mac OS X этот ~/.ssh/configфайл позволяет вам указать множество настроек SSH, включая те, которые поддерживают соединение SSH. Для этого выполните следующие действия:

  1. Используйте предпочитаемый текстовый редактор, чтобы открыть ~/.ssh/configфайл на локальном компьютере. Примечание. Если .sshкаталог или файл конфигурации не существуют, создайте их.

  2. Добавьте следующие строки в файл конфигурации. Значение хоста может быть любым именем, которое вы хотите; это просто ярлык для других настроек. Значение Hostname - это удаленный хост, к которому вы хотите получить доступ; замените example.com своим доменным именем. Замените имя пользователя на свое имя пользователя учетной записи хостинга:


    Host example
        Hostname example.com
        Port 7822
        User username
        ServerAliveInterval 240
        ServerAliveCountMax 2

При такой конфигурации SSH-клиент отправляет пакет на сервер каждые 240 секунд (4 минуты), чтобы поддерживать соединение. Если клиент не получает ответ после двух попыток (как указано в параметре ServerAliveCountMax), он закрывает соединение.

Для получения подробной информации обо всех доступных настройках конфигурации SSH введите man ssh_configв командной строке.

  1. Сохраните изменения в файле конфигурации.

  2. Подключитесь к своей учетной записи, используя SSH. Для этого просто введите ssh example, где example представляет значение хоста, указанное вами на шаге 2.

Контролировать соединение. Если он все еще падает, постепенно уменьшайте ServerAliveIntervalнастройку в файле конфигурации, пока соединение не станет стабильным.

Проверьте следующий URL для получения дополнительной информации https://www.a2hosting.com/kb/getting-started-guide/accessing-your-account/keeping-ssh-connections-alive


5

Вы также можете добавить эти аргументы в команду ssh, например так ...

ssh -o ServerAliveInterval=180 -o ServerAliveCountMax=2 $HOST
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.