zaLinux.ru

Как исправить «No route to host» SSH в Linux (РЕШЕНО)


SSH — это самый безопасный способ управления удалёнными серверами Linux. Одной из самых частых ошибок с которыми вы можете столкнуться при использовании SSH является «ssh: connect to host port 22: No route to host». В этой короткой статье будет показано, как выяснить причины этой ошибки и исправить её.

Необязательно это может быть именно 22 порт — в зависимости от ваших настроек удалённого хоста порт может быть другим. В качестве меры безопасности, системные администраторы могли настроить доступ к SSH на другом порту.

Имеется несколько возможных причин, почему возникает эта ошибка. Это сообщение является нормальным, если удалённый сервер выключен. То есть в первую очередь вам нужно проверить, что удалённых хост работает. Это можно сделать с помощью команды ping:

ping 192.168.56.100

Если удаётся пинговать удалённый сервер, то это говорит о том, что удалённый сервер запущен. В этом случае причиной ошибки в чём-то другом.

Если у вас запущена служба файервола на удалённом сервере, то возможно, что файервол блокирует доступ по 22 порту.


Следовательно вам нужно подключиться физически к консоли сервера или если это VPS (виртуальный частный сервер) вы можете использовать любые другие средства, такие как VNC (если он уже установлен) или другие пользовательские приложения доступа к удалённому серверу, которые предоставлены вашим провайдером услуг VPS. Подключите и выполните вход в командную строку.

Если сервер работает на RHEL/CentOS/Fedora, то нужно использовать команду firewall-cmd, чтобы открыть 22 порт (или другой порт, который вы настроили для использования с SSH):

firewall-cmd --permanent --add-port=22/tcp
firewall-cmd --reload

Если сервер работает на Debian/Ubuntu, то нужно использовать команду UFW, чтобы открыть 22 порт (или другой порт, который вы настроили для использования с SSH) следующим образом:

sudo ufw allow 22/tcp
sudo ufw reload

Теперь попробуйте вновь подключиться к удалённому серверу по SSH:

ssh root@192.168.56.100

Проблема должна исчезнуть.


Рекомендуемые статьи:

3 Комментарии

  1. Oleg

    все верно, спасибо

  2. Руслан

    Ни в какую не хочет работать UFW. Удалось только заставить его загружаться при старте системы, заменой строки в файле ufw.service на After=network-online.target.
    Проверяю правила, идентичны как в другой локальной системе. Настройки портов идентичны. В одну сторону (на одном ПК работает) коннектит Samba, VNC, SSH, NFS, в другую нет (на втором ПК не пускает).
    ssh user@10.12.*.*
    ssh: connect to host 10.12.*.* port *: No route to host
    sudo smbclient -L \\10.12.*.*
    do_connect: Connection to 10.12.*.* failed (Error NT_STATUS_HOST_UNREACHABLE)
    Я уже голову сломал об это UFW, переустанавливал, перезапускал, в том числе через systemctl и systemd, сбрасывал правила по умолчанию.

  3. Дмитрий

    Причина был в дропе запросов на подключение к порту файрволом на роутере. Попал в бан лист) Спасибо, решил вопрос

Добавить комментарий для Руслан Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *