ESC

Start typing to search across invoices, services, domains, tickets, and more...

Search... Ctrl+K
Linux-сервер

Не удаётся подключиться по SSH к Linux: Connection refused, таймаут и другие ошибки

7 шагов 12 мин чтения 1615 просмотров 87
Содержание

Внезапная потеря доступа по SSH — одна из самых частых проблем с сервером. В статье приведён пошаговый план диагностики ошибок SSH в Linux: как по тексту ошибки быстро понять, виновата ли сеть, порт, служба sshd, файрвол или блокировка fail2ban, и как войти через VNC-консоль, если SSH недоступен совсем. Подходит для VPS и выделенных серверов на Debian/Ubuntu и CentOS/Rocky/AlmaLinux.

Шаг 1: Определите направление поиска по тексту ошибки SSH

Разные ошибки указывают на разные причины, поэтому сначала внимательно прочитайте сообщение:

  • Connection refused — сервер доступен, но порт никто не слушает: sshd остановлен или указан не тот порт.
  • Connection timed out — ответа нет совсем: неверный IP, сервер выключен, файрвол отбрасывает пакеты или ваш IP заблокирован.
  • Permission denied — сеть и служба в порядке, проблема в логине, пароле или ключе.
  • Connection reset / closed by remote host — часто fail2ban, hosts.deny или ошибка в конфигурации sshd.
ssh: connect to host 203.0.113.10 port 22: Connection refused
ssh: connect to host 203.0.113.10 port 22: Connection timed out
[email protected]: Permission denied (publickey,password).
kex_exchange_identification: read: Connection reset by peer

Шаг 2: Проверьте доступность порта SSH со своего компьютера

Убедитесь, что порт доступен, и запустите ssh -vvv, чтобы увидеть ход подключения. Если из другой сети (например, через мобильный интернет) подключение работает, проблема в вашей сети или у провайдера, а не на сервере.

# Windows PowerShell
Test-NetConnection 203.0.113.10 -Port 22

# macOS / Linux
nc -vz -w 5 203.0.113.10 22

# Verbose SSH client output shows where it fails
ssh -vvv -p 22 [email protected]

Шаг 3: Войдите на сервер через VNC-консоль

Если SSH недоступен, откройте клиентский кабинет → Мои продукты и услуги → выберите сервер → Управление и запустите VNC-консоль (название может отличаться в зависимости от продукта; если не нашли — создайте тикет). VNC — это как подключить к серверу монитор и клавиатуру: он не зависит от SSH и сетевых настроек. Войдите под root и выполните проверки ниже.

# In the VNC console
localhost login: root
Password:
# Then confirm the network is up
ip a
ping -c 3 1.1.1.1

Шаг 4: Проверьте службу sshd и прослушиваемый порт

Убедитесь, что sshd запущен. Если статус failed, найдите синтаксическую ошибку командой sshd -t, исправьте и перезапустите службу. Затем через ss проверьте, совпадает ли фактический порт с тем, к которому вы подключаетесь.

# Debian / Ubuntu (service name: ssh)
systemctl status ssh
# CentOS / Rocky / AlmaLinux (service name: sshd)
systemctl status sshd

sshd -t                       # config syntax check
systemctl restart sshd        # or: systemctl restart ssh
ss -tlnp | grep sshd
# LISTEN 0 128 0.0.0.0:22  0.0.0.0:*  users:(("sshd",pid=812,fd=3))

Шаг 5: Убедитесь, что файрвол пропускает порт SSH

Посмотрите правила используемого файрвола и проверьте, что порт SSH (22 или ваш нестандартный) разрешён. Изменённый порт SSH, который забыли открыть, — самая частая причина таймаутов.

# firewalld (CentOS / Rocky / AlmaLinux)
firewall-cmd --list-all
firewall-cmd --permanent --add-service=ssh && firewall-cmd --reload

# ufw (Debian / Ubuntu)
ufw status verbose
ufw allow 22/tcp

# Raw rules (iptables / nftables)
iptables -S | head -n 30
nft list ruleset | head -n 50

Шаг 6: Проверьте, не заблокировал ли fail2ban ваш IP

После нескольких неудачных попыток входа fail2ban автоматически блокирует IP-адрес, что выглядит как внезапный таймаут или отказ. Узнайте свой внешний IP на любом сайте проверки IP и снимите блокировку на сервере.

fail2ban-client status sshd
fail2ban-client set sshd unbanip 198.51.100.25

# Also check TCP wrappers on older systems
cat /etc/hosts.deny

Шаг 7: Изучите журналы SSH

Если всё перечисленное в порядке, журналы sshd обычно прямо указывают причину: неверные права, запрет входа пользователю, неправильный формат ключа и т. д. Заполненный диск также может мешать входу.

# Recent sshd logs
journalctl -u sshd -n 50 --no-pager      # CentOS / Rocky / AlmaLinux
journalctl -u ssh -n 50 --no-pager       # Debian / Ubuntu
tail -n 50 /var/log/secure               # RHEL family
tail -n 50 /var/log/auth.log             # Debian / Ubuntu

# A full disk can also break logins
df -h /
Если сервер не отвечает на ping, а VNC-консоль не открывается или работает некорректно, возможен сбой сервера или сети. Сразу создайте тикет — инженеры проверят.

Частые вопросы

После переустановки ОС SSH сообщает об изменении ключа хоста.

На вашем компьютере сохранён старый отпечаток. Выполните локально ssh-keygen -R IP-сервера и подключитесь снова.

Не подключается только из моей сети, у других всё работает.

Возможно, ваш IP заблокирован fail2ban или ваша сеть блокирует порт. Попробуйте другую сеть либо через VNC снимите блокировку или смените порт.

Я забыл пароль root для входа через VNC.

Сбросьте его в клиентском кабинете, если продукт это поддерживает, или загрузитесь в однопользовательский режим через VNC. Если не уверены, создайте тикет.

Если проблема не решилась, создайте тикет — техническая поддержка IMIDC работает круглосуточно 24/7. Укажите IP-адрес сервера, операционную систему, выполненные команды и приложите скриншот ошибки: так инженер разберётся быстрее.

Помог ли вам данный ответ?

Похожие руководства