SSH — это сетевой протокол, который позволяет безопасно получать доступ к удаленной системе и управлять ею по сети. При подключении к удаленному компьютеру через SSH вы могли столкнуться с ошибкой «отказ в подключении». Эта проблема может быть неприятной, особенно если вы являетесь системным администратором и должны срочно выполнять некоторые задачи в удаленной системе.
Давайте рассмотрим некоторые из возможных причин появления ошибки SSH «отказ в соединении» и методы ее устранения.
1. Проверьте, установлен ли SSH-сервер
Одной из возможных причин ошибки «отказ в подключении» является то, что удаленная машина не работает. SSH-сервер. Без SSH-сервера машина не будет принимать входящие SSH-соединения, и вы не сможете получить к ней удаленный доступ.
Таким образом, самый первый шаг в устранении ошибки — проверить, установлен ли SSH-сервер на удаленной машине. Используйте следующую команду для проверки установки сервера SSH:
В дистрибутивах на основе 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.