Как я могу автоматически закрыть сброшенные SSH-соединения?

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

Я знаю, что я могу убить их, используя их PID, но я хотел бы автоматически убить выпавшие сеансы, если это возможно.

Как я могу это достичь?

  • Как выполнить сухую работу с использованием rsync over ssh?
  • «Постоянно добавлен ключ хоста RSA», что это значит?
  • команда linux / unix для проверки внешних / внутренних сетевых соединений
  • Указание шифров и протокола 2 в .ssh / config
  • настроить безопасное соединение через SSH
  • блокировка локальных логинов на устройстве reverse-ssh
  • не может ssh в машину после настройки ключей
  • Объединение двух команд SSH
  • 2 Solutions collect form web for “Как я могу автоматически закрыть сброшенные SSH-соединения?”

    Включите одно из сообщений keepalive SSH, например, включив TCPKeepAlive или ClientAliveInterval в конфигурации sshd сервера.

    Аналогично, в конфигурации клиента вы можете использовать TCPKeepAlive и ServerAliveInterval .

    TCPKeepAlive используется только как KeepAlive , если у вас есть старая версия OpenSSH.

    TCP keepalives – это функция, которая является частью TCP, и работает за пределами зашифрованного туннеля, созданного SSH. Таким образом, кто-то может, например, подделать их, чтобы притвориться, что соединение все еще открыто, когда это не так.

    ClientAlive / ServerAlive работает внутри зашифрованного туннеля, поэтому его нельзя подделать (но я считаю, что это новый вариант и, конечно, стоит больше времени процессора).

    Они должны быть закрыты, как только будет достигнут тайм-аут TCP, или сообщения KeepAlive не получат ответа от вашего старого соединения. Здесь не о чем беспокоиться.

    Если они этого не сделают, в openssh есть какая-то ошибка, о которой следует сообщать выше.

    Linux и Unix - лучшая ОС в мире.