Ошибка SSH 'Connection refused': проверка статуса службы sshd в Linux
При попытке подключиться к удаленному Linux-серверу через PuTTY, WinSCP или консоль Windows/macOS появляется ошибка: ssh: connect to host 192.168.1.100 port 22: Connection refused (В соединении отказано).
Что означает ошибка «Connection refused»?
В отличие от ошибки «Connection timed out» (когда сервер вообще не отвечает из-за проблем с кабелем или роутером), «Connection refused» означает: сервер включен и доступен в сети, но на запрошенном порту (порт 22) **никто не слушает входящие соединения** (служба SSH выключена, упала или не установлена).
Шаг 1. Проверяем, установлен ли SSH-сервер (через локальную консоль)
Подключите монитор и клавиатуру к серверу или откройте VNC/KVM-консоль в панели хостинга и выполните:
sudo systemctl status ssh || sudo systemctl status sshdШаг 2. Разбор статусов службы:
- Статус `Active: active (running)`: служба работает. Возможно, SSH слушает нестандартный порт (проверьте командой:
sudo ss -tulpn | grep sshd). - Статус `Active: inactive (dead)`: служба остановлена. Запустите ее:
sudo systemctl enable --now ssh - Ошибка `Unit ssh.service could not be found`: SSH-сервер не установлен! Установите его:
sudo apt update && sudo apt install openssh-server -y sudo systemctl enable --now ssh
Шаг 3. Проверка межсетевого экрана (UFW Firewall)
Если служба работает, но подключение блокируется фаерволом:
sudo ufw allow 22/tcp
sudo ufw reload Частые вопросы (FAQ)
В чем разница между службой ssh и sshd?
В дистрибутивах Debian/Ubuntu служба обычно называется 'ssh', а в дистрибутивах RHEL/CentOS/Rocky Linux — 'sshd' (SSH Daemon). Команда systemctl status sshd работает в большинстве систем как алиас.
Как перезапустить SSH-сервер после изменения настроек?
Выполните команду: sudo systemctl restart ssh. При этом текущая активная SSH-сессия не разорвется.
Почему root-пользователь не может войти по SSH даже с правильным паролем?
В целях безопасности вход под root по паролю по умолчанию заблокирован в файле /etc/ssh/sshd_config директивой PermitRootLogin prohibit-password. Для входа создайте обычного пользователя с правами sudo.
Как проверить, какой порт на самом деле слушает SSH?
Выполните команду: sudo ss -tlpn | grep ssh. В столбце 'Local Address' будет указан номер порта (например, *:22 или *:2222).