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