Ubuntu Server недоступен по SSH после определенного времени

Вопрос или проблема

У меня дома работает сервер Ubuntu 22.04. У него статический IP, вне диапазона DHCP, так что IP не будет меняться. Также, публичный IP моей домашней сети все это время оставался одинаковым.

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

Однако, если прошло несколько часов без подключения к нему, соединения не удаются. Это распространенная проблема для серверов? Мне интересно, отключается ли SSH-сервер после определенного времени без попыток подключения? Или, возможно, сервер временно приостанавливает свою работу.

если прошло несколько часов без подключения к нему, соединения не удаются. Это распространенная проблема для серверов?

Нет, по крайней мере для меня это крайне необычно.

Единственный случай, когда я видел что-то подобное, был с очень старой версией sshd, которая была выставлена в Интернет через портовое пробрасывание. Она была достаточно защищенной – ни доступа root, только публичная ключевая аутентификация, только handful определенных пользователей и так далее. Когда пробующие боты удерживали соединение открытым во время аутентификации, sshd не завершал их сессию быстро и иногда достигал установленного предела активных соединений, не мог принимать подлинных клиентов в течение некоторого времени. Я не думаю, что в недавних версиях sshd есть такая проблема.

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

Я бы всегда предпочел использовать что-то вроде sudo service sshd restart, чем перезагрузить всю ОС. Это почти всегда быстрее, так же эффективно и гораздо менее разрушительно.

По этой проблеме я обычно исследую причину, проверяя статус сервиса и просматривая соответствующие журналы, например, начиная с sudo grep sshd /var/log/auth.log | tail -n 30 и подобного.

Ответ или решение

Проблема недоступности сервера Ubuntu через SSH: возможные причины и решения

Ситуация, с которой вы столкнулись — недоступность вашего Ubuntu Server 22.04 по SSH после определенного времени, представляет интерес для более глубокого анализа. Будем рассматривать несколько возможных причин этой проблемы и способы ее решения.

1. Возможные причины проблемы

1.1. Конфигурация SSH-сервера

Хотя SSH-сервер не должен отключаться без активных соединений, существуют настройки, которые могут влиять на его работу. Вам стоит проверить следующие параметры в конфигурационном файле SSH /etc/ssh/sshd_config:

  • ClientAliveInterval: Этот параметр определяет, как часто сервер будет отправлять сообщения клиенту для проверки его активности. Если ваш параметр установлен, например, на 0, это означает, что сервер никогда не будет проверять соединение. Попробуйте установить его на 300 секунд (5 минут):

    ClientAliveInterval 300
  • ClientAliveCountMax: Этот параметр определяет, сколько неудачных проверок статуса клиента сервер может игнорировать, прежде чем отключить сессию. Возможно, стоит увеличить это значение.

1.2. Настройки брандмауэра и маршрутизатора

Проблема может быть связана с настройками брандмауэра или маршрутизатора. Убедитесь, что:

  • Порт, используемый для SSH (обычно это 22), открыт для входящих соединений.
  • На маршрутизаторе нет настроек, которые могут прерывать соединение, такие как "Idle Timeout".

1.3. Энергосбережение

Проверьте настройки энергосбережения на вашем сервере. Если сервер переходит в режим ожидания или сну, SSH-соединение может прерываться. Убедитесь, что настройки управления электропитанием отключены или настроены на активный режим. Вы можете проверить это с помощью команды:

sudo systemctl status sleep.target

2. Логи и диагностика

Для диагностики проблемы важно просмотреть журналы системы. Выполните следующие команды для анализа логов SSH:

sudo grep sshd /var/log/auth.log | tail -n 30

Эта команда поможет определить, были ли попытки подключения и какие ошибки проявлялись.

3. Перезагрузка службы SSH

Как уже упоминалось, перезагрузка всей операционной системы может быть излишней. Вместо этого попробуйте перезапустить службу SSH:

sudo systemctl restart sshd

Это действие может помочь возобновить соединение, если служба SSH по какой-то причине перестала отвечать.

4. Заключение

Недоступность сервера через SSH может быть вызвана различными факторами, включая настройки SSH, брандмауэра, сети и энергосбережения. Применив предложенные рекомендации, вы сможете сузить круг поиска проблемы и, возможно, найти эффективное решение. Если проблема сохранится, рассмотрите возможность обращения к сообществу Ubuntu или специализированным форумам для получения дополнительной помощи.

Оцените материал
Добавить комментарий

Капча загружается...