#Что означает ошибка
Connection timed out
Таймаут отличается от «Connection refused»: при отказе сервер ответил, что порт закрыт, а при таймауте ответа нет вообще. Значит, пакеты теряются по дороге — на файрволе сервера, в облачной группе безопасности, на роутере или у провайдера. Если же адрес указан неверно или сервер выключен, результат будет тот же.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Файрвол блокируетUFW, iptables или облачная группа безопасности не пропускают порт 22. | nmap -p 22 показывает filtered. | Откройте порт 22. |
| Неверный адресВы подключаетесь к устаревшему IP. | ping не отвечает. | Проверьте IP в панели хостинга. |
| sshd не работаетСлужба остановлена или не слушает порт. | С консоли сервера systemctl status ssh показывает inactive. | Запустите службу. |
| Сменён портSSH слушает на нестандартном порту (например, 2222). | В sshd_config указан другой Port. | Подключайтесь с -p 2222. |
#Пошаговое решение
- Проверьте адрес и доступностьСо своего компьютера проверьте, правильно ли введён IP или домен сервера, и соответствует ли он адресу в панели провайдера. На Windows откройте PowerShell и выполните
Resolve-DnsName имя_сервера; на Linux/macOS —getent hosts имя_сервераилиdig. ОшибкаConnection timed outговорит об отсутствии ответа, а не о неверном пароле. - Проверьте портНа Windows выполните
Test-NetConnection адрес_сервера -Port 22, на Linux/macOS —nc -vz адрес_сервера 22. Если TCP недоступен, проверьте, не установлен ли нестандартный SSH-порт; его можно узнать в панели провайдера. Не меняйте в конфигурации порт лишь ради устранения сетевого ограничения. - Подключитесь через консоль провайдераЕсли доступ по SSH отсутствует, используйте веб-консоль/VNC/серийную консоль провайдера для входа на сам сервер. На сервере выполните
systemctl status ssh(Debian/Ubuntu) илиsshd(RHEL) иsudo ss -ltnp, чтобы узнать, слушает ли служба нужный IP/порт. Без консоли не пытайтесь менять firewall удалённо. - Проверьте порт в конфигурацииВ действующем файле
sshd_configилиsshd_config.d/*.confпроверьтеPort,ListenAddressи включенияInclude; командаsudo sshd -Tпоказывает итоговые параметры. Сохраните копию, выполнитеsudo sshd -tи сохраняйте действующую консоль при проверке нового порта. - Откройте порт в файрволеПроверьте межсетевой экран сервера и отдельные правила облачного провайдера. Разрешите входящий TCP только с доверенных IP на фактический порт SSH, убедитесь в наличии резервного доступа; запрещено отключать firewall целиком или закрывать единственный удалённый канал до проверки нового.
- Проверьте блокировки по IPЕсли подключение не работает только с вашего адреса, проверьте журнал fail2ban (
fail2ban-client status sshd) и актуальный внешний IP. Снимайте блокировку только с собственного адреса после выяснения причины, не отключайте весь механизм защиты от перебора. - Подключитесь с подробным выводомПосле исправления выполните
ssh -vvv -p порт пользователь@серверс правильным портом и проследите переход к обмену ключами. Если соединение теперь принимает ключ, но выдаётPermission denied, это отдельная проблема аутентификации; не путайте её с прежним таймаутом. - Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
Если вы за корпоративной сетью, порт 22 может быть закрыт — тогда попробуйте подключиться на порт 443 или через VPN. Менять порт SSH стоит не как защиту (это лишь снижает шум в логах), а как организационную меру; всегда убедитесь, что новый порт открыт в файрволе, прежде чем перезапускать sshd — иначе потеряете доступ.