Как исправить ошибку SSH «отказ в соединении» в Linux

SSH — это сетевой протокол, который позволяет безопасно получать доступ к удаленной системе и управлять ею по сети. При подключении к удаленному компьютеру через SSH вы могли столкнуться с ошибкой «отказ в соединении». Эта проблема может вызвать разочарование, особенно если вы являетесь системным администратором и должны срочно выполнить некоторые задачи в удаленной системе.

Давайте рассмотрим некоторые из возможных причин отображения ошибки «отказ в соединении» через SSH и способы ее устранения. Проверять Полное руководство по настройке SSH в Linux и тестированию конфигурации.

Как исправить ошибку «Отказано в соединении» через SSH в Linux

1. Убедитесь, что сервер SSH установлен.

Одной из возможных причин ошибки «Отказано в подключении» является то, что на удаленном компьютере не запущен SSH-сервер. Без SSH-сервера устройство не будет принимать входящие SSH-соединения, и вы не сможете получить к нему удаленный доступ.

Таким образом, первым шагом в устранении неполадок является проверка того, установлен ли уже SSH-сервер на удаленной машине. Используйте следующую команду, чтобы убедиться, что сервер SSH установлен:

В дистрибутивах на основе Debian:

dpkg — list | grep ssh

В дистрибутивах на основе RHEL:

yum list installed | grep ssh

В openSUSE:

zypper search -i | grep ssh

В дистрибутивах на основе Arch:

pacman -Q | grep ssh

Если на удаленной машине установлен SSH-сервер, вы увидите его в списке выходных данных. В противном случае вы должны установить сервер OpenSSH на удаленной машине, к которой вы хотите получить доступ через SSH. OpenSSH — это версия инструментов SSH с открытым исходным кодом для удаленного доступа и управления системами.

Чтобы установить сервер OpenSSH, используйте следующие команды:

В дистрибутивах на основе Debian:

sudo apt install openssh-server

В дистрибутивах на основе RHEL:

sudo yum install openssh-server

В openSUSE:

sudo zypper install openssh

В дистрибутивах на основе Arch:

pacman -S openssh

Проверять Как удаленно управлять Linux из Windows.

2. Проверьте статус службы SSH.

Другой причиной ошибки «отказ в подключении» может быть то, что служба SSH не работает или не работает на удаленном компьютере. После того, как вы убедились, что SSH-сервер установлен, вам нужно проверить статус сервера.

sudo systemctl start sshd

Если служба запущена, в выводе будет указано, что она активна (работает). В противном случае вы увидите что-то вроде неактивного (мертвого).

Как исправить ошибку «Отказано в соединении» через SSH в Linux

Если ваш SSH-сервер не запущен, вы можете запустить его вручную с помощью следующей команды:

sudo systemctl enable sshd

Вы также можете включить автоматический запуск службы при загрузке с помощью:

sudo netstat -plntu | grep ssh

3. Проверьте SSH-порт

По умолчанию сервер SSH работает на порту 22. Однако порт по умолчанию можно изменить. Итак, если вы получаете сообщение об ошибке «отказ в соединении» в SSH, это может быть связано с тем, что вы пытаетесь подключиться к SSH-серверу через порт 22 по умолчанию, когда он работает на другом порту.

Вы можете использовать команду NetStat مع GREP Чтобы найти порт, который прослушивает ваш SSH-сервер:

sudo netstat -plntu | grep ssh

Как исправить ошибку «Отказано в соединении» через SSH в Linux

Вы также можете найти порт SSH в файле sshd_config с помощью следующей команды:

grep port /etc/ssh/sshd_config

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

4. Проверьте системный брандмауэр

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

Чтобы узнать, блокирует ли брандмауэр соединение, временно отключите брандмауэр с помощью следующих команд:

В дистрибутивах Linux на базе Debian и Arch:

sudo ufw disable

В дистрибутивах на основе RHEL и openSUSE:

sudo systemctl disable firewalld

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

В дистрибутивах Debian и Linux на основе Arch используйте следующую команду, чтобы разрешить SSH доступ к брандмауэру UFW:

sudo ufw allow ssh

Кроме того, вы также можете разрешить SSH для номера порта в брандмауэре. Предположим, что ваш SSH-сервер использует порт 5555, тогда вы можете использовать следующую команду, чтобы разрешить его в брандмауэре:

sudo ufw allow 5555

Чтобы убедиться, что правило было успешно добавлено, проверьте статус UFW:

sudo ufw status

В дистрибутивах на основе RHEL и openSUSE используйте следующую команду, чтобы разрешить SSH доступ к брандмауэру:

sudo firewall-cmd — permanent — add-service=ssh

Чтобы разрешить SSH с номером порта, используйте следующую команду:

sudo firewall-cmd — permanent — add-port={port}/tcp

Для сервера SSH, работающего на порту 4444 , команда будет следующей:

sudo firewall-cmd — permanent — add-port=4444/tcp

Чтобы убедиться в успешном добавлении правила в брандмауэр, выполните следующую команду:

sudo firewall-cmd — list-all

5. Разрешите конфликты IP-адресов

Также существует вероятность того, что ошибка SSH «отказано в соединении» может возникнуть из-за конфликта IP-адреса SSH-сервера с IP-адресом другой системы в сети. Это происходит, когда две системы в сети утверждают, что имеют один и тот же IP-адрес, что приводит к конфликту IP-адресов.

Чтобы убедиться в наличии конфликта IP-адресов в вашей сети, используйте инструмент arp-сканирование Следующим образом:

arp-scan [network-id]

Если есть конфликт IP, вы увидите повторяющийся IP-адрес в выводе. На скриншоте ниже показан пример конфликта IP-адресов в сети:

Как исправить ошибку «Отказано в соединении» через SSH в Linux

Во избежание конфликтов IP-адресов убедитесь, что статические IP-адреса устройств не перекрываются с адресами пула DHCP. Проверять Что такое DHCP, что он означает и нужно ли его использовать?

Дополнительный совет: запустите SSH в подробном режиме.

Если вы столкнулись с ошибкой SSH, попробуйте запустить команду ssh в подробном режиме, чтобы отследить проблему. Чтобы запустить SSH в подробном режиме, используйте команду SSH с огурцом -ввв Следующим образом:

ssh -vvv username@ip_address

Как исправить ошибку «Отказано в соединении» через SSH в Linux

В подробном режиме вы будете видеть отладочные сообщения на каждом этапе подключения, которые помогут вам понять, в чем проблема. Проверять Лучшие клиентские приложения SSH для iOS для удаленного управления серверами.

Устранение неполадок, связанных с отказом в подключении через SSH в Linux

Определив возможные причины ошибки подключения SSH и внедрив предложенные решения, вы сможете устранить неполадки и устранить ошибку SSH Connection Denied. В дополнение к этим шагам убедитесь, что вы подключены к правильному IP-адресу и используете правильные учетные данные для входа.

Чтобы сделать ваше удаленное соединение еще более безопасным, вы можете настроить двухфакторную аутентификацию для SSH в Linux. Вы можете просмотреть сейчас Как получить удаленный доступ к рабочему столу Ubuntu из Windows.

Перейти к верхней кнопке