Примечание: Обсуждаемые здесь команды были протестированы на Ubuntu 20.04 LTS. Те же команды действительны и для системы Debian.
Исправить ошибку отказа в соединении
Это ошибка отказа в соединении, с которой вы можете столкнуться при подключении к удаленной системе через SSH.
Следуйте приведенным ниже решениям шаг за шагом, чтобы устранить ошибку отказа в соединении.
Убедитесь, что OpenSSH установлен
Одна из причин, по которой вы можете получить сообщение об ошибке в соединении, заключается в том, что сервер OpenSSH не установлен на целевом сервере.
Во-первых, вам нужно убедиться, что сервер OpenSSH установлен в системе, к которой вы пытаетесь получить доступ через SSH. Чтобы проверить, установлен ли OpenSSH, введите следующую команду в Терминале целевого сервера:
$судоподходящий список--установлены | рукояткаopenssh-сервер
Эта команда в основном фильтрует термин openssh-server из списка установленных пакетов. Если вы получите следующий аналогичный вывод, это означает, что сервер OpenSSH установлен. С другой стороны, если вы не получаете вывода, это означает, что OpenSSH отсутствует на целевом сервере.
Если он не установлен на целевом сервере, вы можете установить его, используя следующую команду как sudo:
$судоподходящийустановитьopenssh-серверЗатем введите пароль sudo и при запросе подтверждения нажмите «y». После установки подтвердите его, используя ту же команду
$судоподходящий список--установлены | рукояткаopenssh-серверПроверить службу SSH
Служба OpenSSH работает в фоновом режиме и прослушивает входящие соединения. Остановленная служба OpenSSH может быть одной из причин, по которой вы получаете сообщение об ошибке в соединении.
Поэтому необходимо проверить, запущена ли служба OpenSSH или нет, используя следующую команду в Терминале:
$судоуслугаsshположение делЕсли вы видите следующий вывод, это означает, что служба активна и работает в фоновом режиме.
С другой стороны, если вы получите неактивный (мертвый), это означает, что служба не работает . Вы можете запустить службу OpenSSH, используя следующую команду как sudo в Терминале:
$судоуслугаsshНачнитеЧтобы перезапустить службу, используйте следующую команду:
$судоуслугаsshрестартПроверьте порт прослушивания SSH-сервера
Еще одна причина получения сообщения об ошибке в соединении отказано в том, что вы пытаетесь подключиться не к тому порту. Например, если сервер настроен на прослушивание порта 2244, и вы пытаетесь подключиться к его порту по умолчанию 22, то в этом случае вы получите сообщение об ошибке в соединении.
Прежде чем пытаться подключиться, вам необходимо проверить порт прослушивания SSH-сервера. Если это порт по умолчанию (22), вы можете подключить его с помощью следующей команды:
$ssh [имя пользователя]@[удаленный IP-адрес сервера илиимя хоста]Если это какой-то порт, отличный от порта по умолчанию, вам нужно будет подключиться к серверу SSH, используя этот порт:
$ssh -п [номер порта] [имя пользователя]@[айпи адрес]Чтобы проверить, какой порт на каком порту слушает сервер OpenSSH; используйте следующую команду в Терминале:
$судо netstat -ltnp | рукояткаsshdВы получите результат, подобный следующему:
В третьем столбце вы можете увидеть, что порт прослушивания сервера - 2244. В этом случае вам нужно будет подключиться к серверу SSH, используя этот порт.
$ssh -п [2244] [имя пользователя]@[айпи адрес]Разрешить SSH в брандмауэре
Брандмауэр, блокирующий порт SSH, может быть еще одной важной причиной ошибки отказа в соединении. Если на сервере SSH запущен брандмауэр, вам необходимо разрешить порт SSH на нем, используя следующую команду. Заменить порт по номеру порта, который прослушивает SSH-сервер:
$судоufw разрешить порт/TCPНапример, если SSH-сервер прослушивает порт 2244, вы можете разрешить его в брандмауэре следующим образом:
$судоufw разрешить2244/TCP
Перезагрузите брандмауэр, используя следующую команду:
$судоufw перезагрузкаЧтобы убедиться, что правила были добавлены, проверьте состояние брандмауэра, используя следующую команду в Терминале:
$судостатус ufwСледующие выходные данные показывают, что порт 2244 разрешен в брандмауэре.
Разрешить конфликт повторяющихся IP-адресов
Ошибка отказа в соединении также может возникать из-за конфликта дублированных IP-адресов. Итак, убедитесь, что в системе нет повторяющегося IP-адреса.
Установите утилиту arping в вашу систему, используя следующую команду:
$судоподходящийустановитьарпингЗатем проверьте IP-адрес SSH-сервера.
$пинг <айпи адрес>Если в выходных данных вы видите ответ более чем с одного MAC-адреса, это означает, что в системе работает дублирующийся IP-адрес. В этом случае измените IP-адрес SSH-сервера и попробуйте снова подключиться с новым IP-адресом.
Вот как исправить ошибку отказа в соединении через порт 22 в системах Linux. В этой статье мы описали несколько способов, которые наверняка помогут вам решить проблему с отказом в соединении.