Ошибка SSH 'Connection refused': диагностика и запуск службы sshd
Почему возникает ошибка «ssh: connect to host ... port 22: Connection refused»
Ошибка «Connection refused» (В соединении отказано) означает, что сетевой пакет успешно долетел до целевого сервера Linux, но операционная система мгновенно отбросила запрос (отправив TCP RST пакет). Это происходит по двум причинам: служба SSH-сервера (sshd) полностью выключена/упала или сетевой порт 22 блокируется локальным файрволом.
Бизнес-риски
Администратор теряет удаленный контроль над сервером. Невозможно администрировать сайты, развертывать обновления и снимать бэкапы, что нарушает соглашение об уровне обслуживания (SLA).
| Текст ошибки клиента | Сетевой уровень | Реальная причина |
|---|---|---|
Connection refused | Транспортный (TCP RST) | Служба SSH остановлена или порт не слушается |
Connection timed out | Сетевой (DROP) | Пакеты блокируются внешним файрволом провайдера / роутера |
Пошаговая диагностика и запуск SSH на сервере (через консоль KVM / VNC)
Шаг 1: Проверка статуса службы SSH
Откройте локальную консоль сервера или панель KVM в личном кабинете хостинга и проверьте состояние демона OpenSSH:
sudo systemctl status ssh
или на CentOS/RHEL:
sudo systemctl status sshdЕсли в выводе написано Active: inactive (dead) или failed, служба не работает.
Шаг 2: Запуск и включение автозагрузки службы
Запустите службу и добавьте ее в автозапуск при включении сервера:
sudo systemctl enable --now ssh
sudo systemctl restart sshШаг 3: Проверка, слушает ли сервер порт 22
Убедитесь, что процесс SSHD действительно слушает сетевой порт 22:
sudo ss -tulpn | grep :22В выводе должна быть строка со статусом LISTEN и процессом sshd.
Шаг 4: Установка OpenSSH Server (если он не был установлен)
На чистых минимальных дистрибутивах пакет SSH-сервера может вовсе отсутствовать. Установите его:
sudo apt update
sudo apt install openssh-server -yТиповые ошибки администраторов
- Блокировка встроенным файрволом UFW: Вы включили фаервол
ufw enable, забыв добавить разрешающее правило для SSH. Решение: выполните командуsudo ufw allow 22/tcp. - Синтаксическая ошибка в /etc/ssh/sshd_config: Если при редактировании конфига была допущена ошибка, служба SSHD не сможет запуститься после перезагрузки. Проверяйте синтаксис конфига командой
sudo sshd -tперед перезапуском.
Инженеры ITSTM оперативно восстановят доступ через спасательный режим (Rescue Mode), починят конфиги SSHD и защитят сервер от подбора паролей (Fail2ban).
Частые вопросы (FAQ)
Как проверить лог ошибок падения службы SSH?
Посмотрите подробные системные логи службы командой: sudo journalctl -u ssh.service -e --no-pager
Что делать, если SSH перестал пускать по паролю после чистой установки Ubuntu 22.04?
По умолчанию вход для root по паролю запрещен. В файле /etc/ssh/sshd_config измените директиву на 'PermitRootLogin yes' или заходите под непривилегированным пользователем.
Может ли антивирус или фаервол на клиенте Windows вызывать Connection Refused?
Нет. При блокировке на стороне клиента или сетевого экрана обычно возникает ошибка 'Connection Timed Out'. 'Connection Refused' генерирует сам целевой Linux-сервер.
Как перезапустить SSH на сервере, не оборвав текущую активную сессию?
Команда 'sudo systemctl restart ssh' перезапускает только мастер-процесс демона, слушающий порт. Все уже установленные активные SSH-сессии пользователей остаются работать без разрыва.