Не удается подключиться к удаленному серверу по SSH.

Вопрос или проблема

Месяц назад я мог подключаться к удаленному серверу через ssh, но вот уже неделю не могу. В данный момент у меня есть доступ к серверу локально, и когда я пытаюсь подключиться к localhost, чтобы проверить, работает ли это, я могу подключиться.
ssh username@localhost

Всё нормально на локальном уровне.

Но с удаленной машины:

ssh username@ip-address-of-server

Я получаю такое сообщение:

ssh: connect to host ip-address-of-server port 22: Connection timed out

На этом сервере работает также веб-страница, конечно же, на порту 80. Веб-страница работает.

Примечание: я могу пинговать сервер с 0% потерь пакетов, так что я получил все переданные пакеты.

Я уже пытался перезапустить ssh на сервере, но по-прежнему не работает. Только локально на localhost, но не удаленно.

Я пробовал с разных удаленных машин без успеха.

Так почему я мог подключаться раньше, а сейчас нет? В чем проблема?

Я уже задавал этот вопрос на [stackoverflow.com][1], но сейчас его поставили на паузу как вне темы.

Сделайте следующее на вашем удаленном сервере, пытаясь подключиться через ssh:

tail -f /var/log/auth.log

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

Как вы описываете ситуацию, вы хотите выполнить “внутренний доступ” и “внешний доступ”. В вашем случае я понимаю, что внутренний доступ осуществляется с хоста к SSH-серверу, оба находятся в одной подсети IP. С другой стороны, вы упоминаете “удаленный доступ”, который, как я полагаю, вы имеете в виду доступ к SSH-серверу с хоста, находящегося на другой подсети IP (внешний доступ). Единственный способ сделать последнее – через маршрутизатор, и, кроме того, маршрутизатор должен быть способен выполнять очень базовую функцию, называемую перенаправлением портов. Сказав это, по какой-то причине ваш маршрутизатор потерял возможность перенаправления портов. Есть две возможности: перезапустить маршрутизатор, так как он стал “неисправным”, или пересмотреть конфигурацию перенаправления портов на маршрутизаторе, который перенаправляет внешний вызов к SSH-порту маршрутизатора на SSH-порт внутреннего SSH-сервера. Обратите внимание, что могут применяться многие другие факторы, но описание не предоставляет достаточной информации для дальнейшей поддержки случая. В любом случае, усилия по устранению неполадок должны быть сосредоточены на анализе маршрутизатора, чтобы выяснить, получает ли маршрутизатор SSH-звонки/попытки на внешнем интерфейсе, и если да, то анализировать, почему маршрутизатор не перенаправляет SSH-трафик к внутреннему SSH-серверу. Если вам удалось сделать решение рабочим в прошлом как “по волшебству” без “что-либо”, пожалуйста, проверьте активацию/возможности UPnP как на маршрутизаторе, так и на сервере.

Ответ или решение

К сожалению, возникли проблемы с подключением к удаленному серверу через SSH. Давайте подробно рассмотрим возможные причины этой ситуации и шаги, которые помогут её решить.

1. Проверка локального доступа

Вы уже проверили локальное подключение к серверу, используя команду:

ssh username@localhost

Поскольку локальное соединение работает, мы можем исключить проблемы с конфигурацией SSH-сервера и убедиться в том, что служба SSH на сервере работает корректно.

2. Проверка удаленного доступа

Когда вы пытаетесь подключиться к серверу с удалённой машины с помощью:

ssh username@ip-address-of-server

и получаете ошибку Connection timed out, это указывает на то, что клиент не может установить соединение с сервером через порт 22, который является стандартным портом для SSH.

3. Анализ сетевого подключения

Так как вы можете пинговать сервер с удалённой машины и получаете 0% потерь пакетов, это говорит о том, что сервер доступен по сети. Однако, это не гарантирует, что порт 22 открыт для SSH-контроля. Вам необходимо проверить следующие аспекты:

  • Брандмауэр: Убедитесь, что на сервере не активен брандмауэр, который блокирует входящие подключения на порт 22. Вы можете использовать команды, такие как ufw или iptables, для проверки статуса брандмауэра. Например:

    sudo ufw status

    Если брандмауэр активен, убедитесь, что SSH разрешен.

  • Настройки маршрутизатора: Если ваш сервер находится за маршрутизатором, проверьте настройки маршрутизатора, чтобы убедиться, что порт 22 правильно переадресуется (Port Forwarding) на внутренний IP-адрес вашего сервера. Если маршрутизатор конфликтует с другими устройствами в сети или произошла ошибка, это может привести к тому, что соединение не осуществляется.

4. Логи проверки

Для большей информативности, вам стоит проверить логи авторизации на сервере. Используйте следующую команду:

tail -f /var/log/auth.log

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

5. Возможные конфликты

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

Заключение

С обрисованной информацией можно выделить несколько ключевых направлений для диагностирования и устранения проблемы с подключением по SSH. Начните с проверки брандмауэра и маршрутизатора, а затем исследуйте возможные конфликты в сети. При необходимости, обратитесь за помощью к администратору сети, который может предоставить доступ к дополнительной диагностике и управлению сетевыми настройками. Так вы сможете восстановить доступ к вашему серверу в кратчайшие сроки.

Оцените материал
Добавить комментарий

Капча загружается...