Такие читатели, как вы, помогают поддерживать MUO. Когда вы совершаете покупку по ссылкам на нашем сайте, мы можем получать партнерскую комиссию. Читать далее.

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

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

1. Проверьте, установлен ли SSH-сервер

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

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

instagram viewer

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

dpkg --список | grep ssh

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

установлен список ням | grep ssh

На openSUSE:

зиппер поиск -я | grep ssh

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

пакман -Q | grep ssh

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

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

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

sudo apt установить openssh-сервер

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

sudo yum установить openssh-сервер

На openSUSE:

sudo zypper установить openssh

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

пакман -S openssh

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

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

sudo systemctl статус sshd

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

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

sudo systemctl запустить sshd

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

sudo systemctl включить sshd

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

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

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

sudo netstat -plntu | grep ssh

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

порт grep /etc/ssh/sshd_config

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

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

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

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

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

sudo ufw отключить

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

sudo systemctl отключить firewalld

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

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

sudo ufw разрешить ssh

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

sudo ufw разрешить 5555

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

статус sudo ufw

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

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

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

sudo firewall-cmd --permanent --add-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-scan следующим образом:

arp-сканирование [идентификатор сети]

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

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

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

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

ssh -vvv имя_пользователя@ip_адрес

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

Устранение ошибки SSH «Отказано в соединении» в Linux

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

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