🖧 Как исправить ошибку SSH “Connection Refused” |

🖧 Как исправить ошибку SSH “Connection Refused”

Мануал

Введение

У вас возникли проблемы с доступом к удаленному серверу по SSH?

Если SSH отвечает сообщением “Connection refused“, вам может потребоваться изменить запрос или проверить настройку.

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

Почему происходит отказ в подключении при SSH?

Существует множество причин, по которым вы можете получить ошибку “Connection refused” при попытке подключиться по SSH к вашему серверу. Чтобы решить эту проблему, сначала нужно определить, почему система отказала вам в подключении по SSH.

Ниже приведены некоторые из наиболее распространенных причин, которые могут вызвать отказ в подключении по SSH.

Клиент SSH не установлен

Прежде чем приступать к устранению других проблем, необходимо проверить, установлен ли у вас SSH.

На машине, с которой вы получаете доступ к серверу, должен быть установлен клиент SSH.

Без правильной установки клиента вы не сможете удаленно подключиться к серверу.

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

ssh

Если терминал выдает список опций команды ssh, клиент SSH установлен в системе.

Однако если он отвечает “command not found“, необходимо установить клиент OpenSSH.

Решение: Установите SSH-клиент

Чтобы установить SSH-клиент на вашу машину, откройте терминал и выполните одну из перечисленных ниже команд.

Для систем Ubuntu/Debian:

sudo apt install openssh-client

Для систем CentOS/RHEL:

sudo yum install openssh-client

Демон SSH не установлен на сервере

Точно так же, как вам нужна клиентская версия SSH для доступа к удаленному серверу, вам нужна серверная версия для прослушивания и приема соединений.

Поэтому сервер может отклонить входящее соединение, если SSH-сервер отсутствует или его установка недействительна.

Чтобы проверить доступен ли SSH на удаленном сервере, выполните команду:

ssh localhost

Если в выводе появится ответ “Connection refused”, переходите к установке SSH на сервере.

Решение: Установите SSH на удаленном сервере

Чтобы решить проблему отсутствия сервера SSH, обратитесь к разделу о том, как установить сервер OpenSSH.

Как установить OpenSSH-сервер из исходников в Linux

🛡️ Как обезопасить и защитить сервер OpenSSH

Неверные учетные данные

Неправильные учетные данные являются распространенными причинами отказа в SSH-соединении.

Убедитесь, что вы не вводите имя пользователя или пароль неправильно.

Затем проверьте, правильно ли вы используете IP-адрес сервера.

Наконец, убедитесь, что у вас открыт правильный порт SSH.

Проверить это можно, выполнив следующие действия:

grep Port /etc/ssh/sshd_config

На выводе отображается номер порта, как показано на рисунке ниже.

Примечание: Вы можете подключиться к удаленной системе по SSH, используя аутентификацию с помощью пароля или открытого ключа (беспарольный вход по SSH). Если вы хотите настроить аутентификацию с открытым ключом, обратитесь к разделу  🔬 Как обменяться ключом SSH для аутентификации без пароля между серверами Linux

Служба SSH не работает

Служба SSH должна быть включена и работать в фоновом режиме.

Если служба не работает, демон SSH не сможет принимать соединения.

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

sudo service ssh status

Решение: Включите службу SSH

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

systemctl start sshd

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

sudo systemctl enable sshd

Брандмауэр препятствует подключению SSH

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

Брандмауэр защищает сервер от потенциально опасных соединений.

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

Убедитесь, что брандмауэр не блокирует SSH-соединения, так как это может привести к ошибке “connection refused“.

Решение: Разрешить SSH-соединения через брандмауэр

Чтобы решить проблему, о которой мы говорили выше, вы можете использовать ufw (Uncomplicated Firewall), инструмент интерфейса командной строки для управления конфигурацией брандмауэра.

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

sudo ufw allow ssh

Порт SSH закрыт

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

Чтобы принять этот запрос, на сервере должен быть открыт порт SSH.

Если порт закрыт, сервер отказывает в подключении.

По умолчанию SSH использует порт 22.

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

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

sudo lsof -i -n -P | grep LISTEN

Найдите порт 22 в выводе и проверьте, установлено ли значение STATE в LISTEN.

Также вы можете проверить, открыт ли определенный порт, в данном случае порт 22:

sudo lsof -i:22


Решение: Открыть порт SSH

Чтобы включить порт 22 для прослушивания запросов, используйте команду iptables:

sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

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

Отладка и логирование SSH

Для анализа проблем с SSH в Linux можно включить режим verbose или режим отладки.

Когда вы включаете этот режим, SSH выводит отладочные сообщения, которые помогают устранить проблемы с подключением, конфигурацией и аутентификацией.

Существует три уровня :

  • уровень 1 (-v)
  • уровень 2 (-vv)
  • уровень 3 (-vvv)

Поэтому вместо доступа к удаленному серверу с помощью синтаксиса ssh [server_ip] добавьте опцию -v и выполните команду:

ssh -v [server_ip]

В качестве альтернативы вы можете использовать:

ssh -vv [server_ip] или
ssh -vvv [server_ip]

Заключение

В этой статье перечислены некоторые из наиболее распространенных причин ошибки SSH “Connection refused”.

Чтобы устранить проблему, просмотрите список и убедитесь, что все параметры настроены правильно.

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий