Иногда необходимо постоянно (или довольно долго) держать соединение с сервером по SSH. Но это наталкивает на проблему разрыва соединения с сервером из-за длительной неактивности клиента. Существует 2 варианта решения этой проблемы.
Способ №1.
Если у вас есть root-доступ к серверу, то вы можете просто установить значение в файле конфигурации SSH /etc/ssh/sshd_config
ClientAliveInterval 60
Эта строчка устанавливает интервал времени ожидания в секундах, после которого демон SSH sshd
отправит клиенту NULL-пакет для поддержания соединения.
По умолчанию, значение этой переменной 0
, что означает что сервер не будет поддерживать соединение с клиентом и разорвёт его после длительного отсутствия активности.
Не забудьте перезапустить sshd
на сервере после сохранения файла.
Способ №2.
Второй способ проще и его можно применить ко всем вашим SSH-подключениям сразу.
Просто добавьте эти строчки в файл ~/.ssh/config
на вашей локальной машине:
Host *
ServerAliveInterval 60
Если у вас не было этого файла, тогда создайте его, установив ему права 600
:
chmod 600 ~/.ssh/config
Эти строчки заставляют отправлять ваш ssh-клиент каждые 60
секунд KeepAlive сообщения для всех серверов к которым вы будете подключаться, тем самым поддерживая с ними постоянное соединение.
Это всё.