SSH обеспечивает безопасный канал для доступа к серверам Linux. Иногда мы сталкиваемся с ошибкой «Отказано в соединении» при подключении к SSH-серверам. Ошибка может быть вызвана несколькими причинами, такими как неактивность службы SSH, порт заблокирован брандмауэром ufw, сервер использует другой порт или конфликт IP-адресов. Сегодня мы рассмотрим различные способы устранения проблемы. Проблема с отказом в соединении в системе Ubuntu/Debian.
Проверьте установку OpenSSH в вашей системе Linux
Сначала проверьте, установлен ли OpenSSH в вашей системе или нет. Упомянутая ниже команда проверит это.
sudo apt list --installed | grep openssh-server
Если OpenSSH не установлен, мы установим его, выполнив следующую команду:
sudo apt install openssh-server
Проверить службу SSH
Теперь давайте проверим состояние службы SSH в нашей системе. Он должен быть активен или находиться в рабочем состоянии. Причиной, по которой вы получаете сообщение об ошибке отказа в соединении, может быть неактивное состояние SSH в вашей системе. Выполните следующую команду, чтобы проверить статус:
sudo service ssh status
Если ваша служба SSH неактивна, вы можете запустить ее, выполнив следующие команды:
sudo service ssh start
sudo service ssh restart
Проверьте порт прослушивания SSH-сервера
Возможно, вы подключаетесь к неправильному порту, поэтому вы получаете сообщение об отказе в соединении. Например, сервер прослушивает соединение через порт 1068, но вы пытаетесь подключиться к порту 22.
Прежде чем пытаться подключиться, сначала проверьте, какой порт используется сервером SSH для прослушивания новых подключений. Если сервер прослушивает порт 22 по умолчанию, вы можете использовать следующий синтаксис команды для установления соединения:
ssh [username]@[remoteserver IP or hostname]
Введите следующую команду, чтобы проверить, какой порт прослушивает сервер OpenSSH:
sudo netstat -ltnp | grep sshd
Как мы видим, 22-й порт используется OpenSSH для прослушивания соединений.
В случае, если вместо 22 используется какой-то другой порт, вы выполните следующую команду:
ssh -p [Port] [username]@[ip_address]
Разрешить SSH в брандмауэре
Сообщение об отказе в подключении также может быть связано с тем, что брандмауэр в вашей системе блокирует порт SSH. Чтобы разрешить порт через брандмауэр, выполните эту команду:
sudo ufw allow port /tcp
Если используется порт, отличный от 22, вы выполните следующую команду:
sudo ufw allow 2244/tcp
Перезагрузите брандмауэр с помощью этой команды, чтобы обновить правила:
sudo ufw reload
Теперь проверьте состояние брандмауэра, чтобы убедиться, что порт SSH разрешен или нет.
sudo ufw status
Вы увидите следующее сообщение, если вы используете порт 2244 для SSH:
Разрешить конфликт повторяющихся IP-адресов
Другой причиной, которая может вызывать эту проблему, является дублирующийся IP-адрес. Итак, нам нужно проверить, есть ли в системе дублирующийся адрес или нет. Для этого нам нужна утилита arping в нашей системе. Установите его с помощью следующей команды:
sudo apt install arping
Теперь пропингуйте IP-адрес сервера, используя приведенный ниже синтаксис команды:
ping <ip-address>
Если вы получаете ответ более чем с одного MAC-адреса, это означает, что в системе работает дублирующийся IP-адрес. Чтобы решить эту проблему, измените IP-адрес SSH-сервера.
Вывод
В сегодняшней статье мы обсудили несколько причин, которые могут вызывать ошибку «Отказ в подключении», и несколько способов решения этой проблемы. Эта статья обязательно поможет вам в устранении ошибки.