Как устранить причину, по которой не удаётся подключиться к серверу по SSH?

При попытке подключиться к серверу по SSH через MobaXterm соединение зависает: при вводе команды ssh root@ip идёт бесконечная загрузка без сообщений об ошибке и без приглашения ввода. В Termius появляется ошибка "connection reset by peer", а при подключении из стандартной командной строки — "connection timed out". У меня несколько серверов; я переустанавливал два из них, но это не помогло — ни к одному серверу подключиться не удаётся. В чём может быть причина и как это исправить?
  • 7 июля 2026 г. 14:00
Ответы на вопрос 4
Коротко — причины обычно в трёх местах: 1) на клиенте / в сети клиента (блокировка исходящего трафика), 2) на пути (провайдер, сетевые ACL/маршрутизатор), 3) на самом сервере (sshd не слушает/фаервол/ban). Поскольку проблема повторяется для нескольких серверов и переустановка серверов не помогла, первыми надо проверять сеть/клиента/путь. Ниже пошагово что проверить и как исправить.

1) Быстрая проверка с клиентской машины
- Пинг и трассировка:
  - ping <IP>
  - traceroute <IP> (Linux/macOS) / tracert <IP> (Windows)
  Это покажет, доходит ли трафик до провайдера/хоста или обрывается на каком-то узле.

- Проверка порта 22:
  - Linux: nc -vz <IP> 22  или  nmap -Pn -p22 <IP>
  - Windows PowerShell: Test-NetConnection -ComputerName <IP> -Port 22
  - Или telnet <IP> 22
  Вывод: “succeeded” / “open” — порт доступен; “timed out” — нет ответа; “refused/reset” — пакеты доходят, но удалённый хост сбрасывает.

- Запуск ssh в отладочном режиме:
  - ssh -vvv root@<IP>
  Это покажет на каком этапе зависает/сбрасывается соединение.

Если с вашего компьютера все сервера недоступны, попробуйте подключиться с другого соединения (мобильный хот‑спот, VPN, другая сеть). Если с другого соединения всё работает — проблема у вас/у провайдера.

2) Если есть доступ к консоли сервера (панель провайдера / KVM)
- Убедиться, что sshd запущен и слушает:
  - systemctl status sshd
  - ss -tlnp | grep :22   или  netstat -tlnp | grep :22
  - проверьте порт в /etc/ssh/sshd_config (Port, ListenAddress)

- Посмотреть логи sshd:
  - journalctl -u sshd -n 200
  - tail -n 200 /var/log/auth.log  (или /var/log/secure)
  Там будут сообщения об ошибках, попытках подключений, блокировках.

- Проверить фаервол/правила:
  - iptables -L -n -v   или  nft list ruleset
  - ufw status verbose
  - firewalld: firewall-cmd --list-all
  Ищите правила, блокирующие 22 или конкретный IP вашего клиента.

- Проверить fail2ban / hosts.deny:
  - fail2ban-client status sshd
  - cat /etc/hosts.deny /etc/hosts.allow
  Возможно ваш IP попал в бан.

- Перезапустить sshd после правок:
  - systemctl restart sshd

3) Диагностика сети на низком уровне (если есть доступ к обеим сторонам)
- Снять трафик на сервере при попытке подключения:
  - sudo tcpdump -n -s0 -vvv host <клиентский_IP> and port 22
  По пакетам увидите SYN/SYN-ACK/RESET: если SYN от клиента достигает сервера — проблема на сервере (или приложение отбрасывает). Если сервер не получает SYN — проблема на пути/у клиента.

4) Особые случаи
- Провайдер/облачный сервис: у многих облаков есть security group / firewall в панели — проверьте, разрешён ли вход на 22 для вашего IP/всех.
- Блокировка ISP: некоторые провайдеры блокируют порт 22. Попробуйте подключиться через VPN или поставить sshd на альтернативный порт (например 2222) и проверить.
- TCP Wrappers / Fail2ban / автокоррекция: иногда скрипты банят слишком агрессивно.
- SSHD падает при попытке с определённых клиентов (редко) — см. логи sshd и dmesg.

5) Что делать прямо сейчас (резюме шагов)
1. На клиенте: ssh -vvv root@IP, nc -vz IP 22, traceroute, Test‑NetConnection.
2. Попробовать другое соединение (мобильный интернет или VPN).
3. Если есть панель провайдера — открыть консоль и проверить systemctl status sshd, логи и фаервол.
4. Если нет доступа к консоли — связаться с техподдержкой хостера (описать, что несколько серверов одновременно недоступны).
5. Пришлите сюда вывод ssh -vvv и результаты nc/traceroute/tcpdump — помогу проанализировать.

Если пришлёте конкретные выводы (ssh -vvv, nc/nmap, traceroute, или лог sshd), я подскажу дальнейшие конкретные шаги и объясню, где именно обрывается соединение.
Заменить IP. Если раньше работало, но потом перестало — заблокировали. Самый простой вариант проверки — просто добавить второй IP адрес серверу, поднять на этом адресе SSH и проверить доступность по этому адресу.
впн включи <br/> <br/> с ПК обычно заходят в такие места
Ну, во-первых заходить рутом по ssh - это примерно как ходить по городу без штанов - вроде и не голый, а нельзя. Ну вот тупо нельзя и все. <br/> <br/> Во-вторых, там либо служба не стартована, либо РКН опять спички нашел (которые детям не игрушка). <br/> <br/> Идем на панель хостера, открываем консоль сервера, смотрим что происходит в логах.
Похожие вопросы