#Что означает ошибка
Connection refused
Ошибка ssh: connect to host … port 22: Connection refused означает, что на сервере по этому адресу и порту никто не принимает соединения: служба sshd не запущена, слушает другой порт или подключение отклонено файрволом. Отличайте её от Connection timed out (пакеты теряются, обычно блокировка) и Permission denied (соединение есть, но не прошла аутентификация).
Если доступ к серверу есть только по SSH, воспользуйтесь консолью хостера (VNC/Serial) — это самый надёжный способ вернуть управление.
Проверьте, запущен ли sshd, и правила файрвола.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| sshd остановленСлужба. | Проявляется как «Connection refused» или близкий по смыслу сбой. | Запустите. |
| ФайрволПорт. | Проявляется как «Connection refused» или близкий по смыслу сбой. | Откройте. |
| Другой портКонфиг. | Проявляется как «Connection refused» или близкий по смыслу сбой. | Укажите. |
| Облачный firewallГруппа. | Проявляется как «Connection refused» или близкий по смыслу сбой. | Разрешите. |
#Пошаговое решение
- Проверьте sshdВ терминале клиента повторите
ssh -v пользователь@имя-сервераи запишите, какой адрес и порт используются.Connection refusedозначает, что TCP-соединение активно отвергнуто; сначала проверьте, правильны ли IP и порт у провайдера, и не перепутан ли сервер после изменения DNS. - Откройте портНа сервере через консоль провайдера или другой разрешённый доступ выполните
sudo systemctl status ssh(в некоторых системах служба называетсяsshd) иsudo ss -tlnp | grep -E ":22\b|sshd". Если SSH слушает другой порт, подключайтесь к нему сssh -p ПОРТ ...; службу не перезапускайте вслепую, пока не обеспечен запасной вход. - Проверьте портПроверьте действующие правила межсетевого экрана, безопасность облачного провайдера и строку
Portв/etc/ssh/sshd_config. Прежде чем исправлять конфигурацию, сохраните её копию, выполнитеsudo sshd -tи согласуйте открытие только нужного порта; испытайте новое подключение в отдельном окне, не закрывая рабочую консоль.
#Служба SSH и порт
Через консоль проверьте sudo systemctl status ssh (или sshd) и запустите службу, если она остановлена. Командой ss -tlnp | grep ssh убедитесь, что она слушает порт: он задаётся директивой Port в /etc/ssh/sshd_config. Если порт изменён, подключайтесь с ключом -p номер.
#Файрвол и облачные правила
Проверьте ufw status, iptables -L и firewalld. Откройте нужный порт (ufw allow 22/tcp). У облачных провайдеров (AWS, Hetzner, Yandex Cloud) отдельно настраиваются группы безопасности: правило для входящего порта 22 должно быть разрешено для вашего IP.
#Сервер только что создан или переустановлен
После переустановки изменился ключ узла: удалите старую запись командой ssh-keygen -R адрес. Убедитесь, что вы подключаетесь по верному IP-адресу, что сервер запущен, и что sshd установлен (на минимальных образах его может не быть: sudo apt install openssh-server).
#Защита от перебора
Fail2ban или правила хостера могут блокировать ваш IP после нескольких неудачных попыток. Проверьте fail2ban-client status sshd и при необходимости разблокируйте адрес. Рекомендуется отключить вход по паролю и использовать ключи.
sudo systemctl status sshsudo ss -tlnp | grep sshsudo sshd -t