Не подключается через ssh ubuntu

Обновлено: 21.11.2024

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

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

Ошибки

Разрешение имени хоста

Большинство ошибок разрешения возникает, когда ссылка на хост SSH не может быть сопоставлена ​​с сетевым адресом. Хотя это почти исключительно связано с DNS, основной причиной не всегда является проблема с DNS.

В клиенте OpenSSH такая команда, как ssh [email protected], может возвращать следующую ошибку:

В PuTTY вы можете увидеть окно ошибки с таким текстом:

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

Если у вас возникли проблемы с разрешением DNS на любом уровне, вы также можете использовать IP-адрес дроплета в качестве временного решения, например, ssh [защищенная электронная почта] вместо ssh [защищенная электронная почта] .

Следующие руководства являются хорошим ресурсом для начала работы с ошибками конфигурации DNS:

Время ожидания соединения

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

В клиенте OpenSSH такая команда, как ssh [email protected], может привести к следующей ошибке:

В PuTTY вы можете увидеть окно ошибки с таким текстом:

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

  • Убедитесь, что IP-адрес узла правильный для дроплета.
  • Убедитесь, что ваша сеть поддерживает подключение через используемый порт SSH. Некоторые общедоступные сети могут блокировать порт 22 или пользовательские порты SSH. Вы можете сделать это, например, протестировав другие хосты, использующие тот же порт, с известным рабочим SSH-сервером. Это может помочь вам определить, не связана ли проблема с вашей каплей. . Убедитесь, что для них не задана политика DROP по умолчанию, а порт не добавлен для разрешения подключений.

Отказ в подключении

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

В клиенте OpenSSH такая команда, как ssh [email protected], может возвращать следующую ошибку:

В PuTTY вы можете увидеть окно ошибки с таким текстом:

В этой ситуации у вас может быть та же основная проблема, что и с ошибками тайм-аута соединения, но есть некоторые дополнительные вещи, которые вы можете проверить:

  • Убедитесь, что IP-адрес узла правильный для дроплета.
  • Убедитесь, что ваша сеть поддерживает подключение через используемый порт SSH. Некоторые общедоступные сети могут блокировать порт 22 или пользовательские порты SSH. Вы можете сделать это, например, протестировав другие хосты, использующие тот же порт, с известным рабочим SSH-сервером. Это может помочь вам определить, не связана ли проблема с вашей каплей. . Убедитесь, что для них не задана политика DROP по умолчанию, а порт не добавлен для разрешения подключений.
  • Убедитесь, что служба запущена и привязана к ожидаемому порту.

Решения

Проверка брандмауэра

Некоторые проблемы с подключением могут быть вызваны настройками брандмауэра. Если ваш брандмауэр настроен на блокировку определенных портов или служб, это может помешать вам подключиться. Дополнительные сведения о брандмауэрах см. в разделе Что такое брандмауэр и как он работает?

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

То, как вы проверяете правила брандмауэра, зависит от того, какой брандмауэр использует ваша капля. Серверы Ubuntu обычно работают под управлением UFW; Серверы CentOS часто используют FirewallD. Если вы их не используете, скорее всего, вы используете iptables.

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

Для систем Linux, не использующих UFW или FirewallD, перечислите правила брандмауэра с помощью команды iptables с sudo или от имени пользователя root.

Следующий вывод указывает на отсутствие правил, блокирующих трафик SSH:

Если вы видите правила или политику по умолчанию REJECT или DROP , вы должны убедиться, что цепочка INPUT разрешает порт, на котором работает ваша служба SSH (по умолчанию это 22).

Для пользователей FirewallD используйте команду firewall-cmd, чтобы вывести список служб:

В выходных данных должен быть показан список служб, включая SSH (порт 22 по умолчанию), чтобы указать, что брандмауэр поддерживает трафик SSH:

Если вы используете собственный порт для SSH, вы можете проверить это с помощью параметра --list-ports. Если вы создали собственное определение службы, вы все равно должны нормально видеть SSH с параметром --list-services .

Пользователи, работающие с UFW, должны использовать статус ufw для проверки своего брандмауэра:

Выходные данные также показывают доступные порты:

Убедитесь, что ваш порт SSH есть в списке.

Проверка статуса службы SSH

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

В более старых версиях ОС (Ubuntu 14 и ниже, CentOS 6, Debian 6) может использоваться служебная команда, поддерживаемая Upstart. Более современные дистрибутивы с systemd используют команду systemctl. Дистрибутивы на основе Red Hat (например, CentOS и Fedora) называют службу sshd, а Debian и Ubuntu называют ее ssh .

Аналогично, на сервере, использующем systemd (например, CentOS 7), используйте команду systemctl для проверки статуса:

Работающая служба показывает вывод, подобный этому, с активным (работает) в строке Active:.

Если служба не запущена, в строке «Активность» отображается неактивность, за которой следуют последние записи журнала для службы:

В этом случае перезапустите его с помощью systemctl start sshd .

Для систем, использующих сервисную команду, проверьте состояние процесса SSH с помощью следующей команды (запускаемой от имени пользователя root или с помощью sudo ):

Подобный вывод, включающий PID (идентификатор процесса), указывает на то, что процесс работает должным образом:

Если он не запущен, вы увидите вывод, указывающий, что процесс остановлен:

В этом случае перезапустите его с помощью службы ssh start .

Проверка порта службы SSH

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

В большинстве систем файл конфигурации SSH называется /etc/ssh/sshd_config . Порт по умолчанию — 22 , но его можно переопределить любой строкой конфигурации в этом файле, указав директиву порта с номером.

Вы можете искать такие строки, используя grep:

Вы увидите такой вывод с номером порта:

Если вы знаете, что служба работает, вы можете подтвердить, что служба работает на ожидаемом порту, используя ss (запускать с помощью sudo или от имени пользователя root). Подобные выходные данные предоставляются и для команды netstat -plnt, но ss является предпочтительной командой для запроса информации о сокете из ядра.

Вывод, который вы ищете, должен ссылаться на имя программы, прослушивающей настроенный порт. Например, эти выходные данные показывают, что служба SSH прослушивает все интерфейсы * на порту 22 .

Ссылки на интерфейсы * и 0.0.0.0 указывают на все интерфейсы в дроплете. 127.0.0.1 указывает, что служба не является общедоступной. Соответствующей директивой sshd_config является ListenAddress, и ее следует закомментировать по умолчанию для всех интерфейсов или указать общедоступный IP-адрес дроплета.

Заключение

Если вам нужна дополнительная помощь, вы можете отправить заявку в службу поддержки. Обязательно укажите следующую информацию:

  • Имя пользователя, хост и порт, которые вы используете для подключения.
  • Механизм аутентификации, который вы планируете использовать.
  • Полный вывод ошибок, связанных с этапом ошибки, включая подробный вывод клиента SSH
  • Вся информация, которую вы уже собрали в процессе устранения неполадок.
  • Все, что вам неясно при ссылке на эту статью.

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

Secure Shell (SSH) — ключевой инструмент разработки WordPress. Он предоставляет опытным пользователям доступ к ключевым платформам и программному обеспечению, которые упрощают, ускоряют и организуют кодирование и другие задачи.

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

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

Предпочитаете смотреть видеоверсию?

Что такое SSH и когда его следует использовать?

Secure Shell (SSH), также иногда называемый Secure Socket Shell, представляет собой протокол для безопасного доступа к серверу вашего сайта через незащищенную сеть. Другими словами, это способ безопасного удаленного входа на сервер с помощью предпочитаемого вами интерфейса командной строки:

Использование SSH для удаленного доступа к сайту WordPress, размещенному на Kinsta

В отличие от протокола передачи файлов (FTP), который позволяет загружать, удалять и редактировать файлы только на вашем сервере, SSH может выполнять широкий спектр задач. Например, если ошибка блокирует ваш доступ к сайту WordPress, вы можете использовать SSH для удаленного доступа к нему.

Этот протокол также позволяет использовать несколько ключевых инструментов разработчика, в том числе:

    . Командная строка WordPress. Вы можете использовать его для различных задач, включая новые установки, массовые обновления плагинов и импорт медиафайлов. . Менеджер пакетов PHP. Он позволяет вам реализовать несколько фреймворков для использования в коде вашего сайта, вытягивая необходимые библиотеки и зависимости. . Система контроля версий, используемая для отслеживания изменений в коде. Это особенно полезно для команд разработчиков, работающих вместе над одним проектом. . Менеджер пакетов JavaScript. Он включает в себя командную строку и реестр программного обеспечения JavaScript. Примечание. Для доступа к этой функции клиентам Kinsta потребуется план Enterprise.

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

Важно

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

Почему мне отказывают в подключении по SSH? (5 причин ошибок подключения)

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

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

1. Ваша служба SSH не работает

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

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

Ошибка соединения с отказом в Терминале

Демон SSH вашего сервера может быть недоступен по самым разным причинам, включая неожиданные всплески трафика, перебои с ресурсами или даже атаку распределенного отказа в обслуживании (DDoS). В дополнение к шагам по устранению неполадок, которые мы упомянем ниже, вы можете обратиться к своему хостинг-провайдеру, чтобы определить основную причину проблемы.

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

Если командная строка возвращает статус «Не работает», то вы, вероятно, нашли причину ошибки подключения.

Kinsta удобна для разработчиков и предлагает доступ по SSH на всех тарифных планах хостинга.

2. У вас неверные учетные данные

Хотя это может показаться слишком простым, чтобы быть правдой, возможно, вы просто вводите неверные учетные данные при попытке подключения к серверу. Для запуска SSH необходимы четыре элемента информации:

  • Имя хоста. IP-адрес сервера, к которому вы пытаетесь подключиться, или ваше доменное имя.
  • Имя пользователя. Ваше имя пользователя (S)FTP.
  • Пароль. Ваш пароль (S)FTP.
  • Порт. Порт по умолчанию — 22. Однако некоторые хостинг-провайдеры (включая Kinsta) из соображений безопасности меняют номер порта SSH. Если это так, вы сможете найти его, войдя в свою панель управления MyKinsta.

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

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

Подпишитесь на рассылку новостей

Хотите узнать, как мы увеличили трафик более чем на 1000 %?

Присоединяйтесь к более чем 20 000 человек, которые получают нашу еженедельную рассылку с полезными советами по WordPress!

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

3. Порт, который вы пытаетесь использовать, закрыт

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

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

Если порт 22 или пользовательский порт SSH для вашего сервера закрыт, вы, скорее всего, увидите сообщение об отказе в соединении. Вы можете увидеть все порты, прослушиваемые на вашем сервере, выполнив эту команду:

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

4. SSH не установлен на вашем сервере

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

Вообще говоря, почти у всех хостинг-провайдеров демоны SSH установлены на их серверах по умолчанию. Эта конкретная проблема чаще встречается на локальных или выделенных серверах.

5. Настройки брандмауэра препятствуют подключению SSH

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

Нужен невероятно быстрый, безопасный и удобный для разработчиков хостинг? Kinsta создан для разработчиков WordPress и предоставляет множество инструментов и мощную панель инструментов. Ознакомьтесь с нашими планами

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

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

  • dport 22: это порт назначения, которым для SSH обычно является порт 22 (напоминание: Kinsta не использует этот номер порта).
  • REJECT: это означает, что соединение с указанным пунктом назначения отклонено.
  • DROP: как и REJECT, это означает, что соединения с соответствующим портом блокируются.

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

Почему PuTTY сообщает об отказе в подключении?

PuTTY — это SSH-клиент. Если вы знакомы с FTP, эта платформа FileZilla эквивалентна SSH на компьютерах с Windows. Другими словами, PuTTY позволяет пользователям вводить свои учетные данные и запускать SSH-соединение:

Веб-сайт PuTTY

Если вы являетесь пользователем PuTTY и видите сообщение об отказе в соединении, причина, скорее всего, одна из перечисленных выше.

Это ошибка подключения SSH, как и любая другая, и приведенные ниже советы по устранению неполадок должны работать независимо от того, используете ли вы PuTTY, Terminal или любую другую программу для подключения к серверу с помощью SSH.

Мы использовали наши знания об эффективном управлении веб-сайтами в масштабе и превратили их в электронную книгу и видеокурс. Нажмите здесь, чтобы загрузить руководство 2020 года по управлению более чем 40 сайтами WordPress!

Как устранить ошибки подключения SSH?

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

  • Если ваша служба SSH не работает. Свяжитесь с вашим хостинг-провайдером, чтобы узнать, почему ваша служба SSH не работает. Для локальных или выделенных серверов вы можете использовать команду sudo service ssh restart, чтобы попытаться запустить ее снова.
  • Если вы ввели неправильные учетные данные. Перепроверив SSH-порт с помощью команды grep Port /etc/ssh/sshd_config, попробуйте еще раз подключиться, указав правильные данные.
  • Если ваш порт SSH закрыт. Обычно это побочный эффект одной из двух причин, перечисленных ниже. Либо установите демон SSH на сервер, к которому вы хотите подключиться, либо измените правила брандмауэра, чтобы разрешить подключения к вашему порту SSH.
  • Если на вашем сервере не установлен протокол SSH. Установите инструмент SSH, например OpenSSH, на сервер, к которому вы хотите подключиться, с помощью команды sudo apt install openssh-server.
  • Если ваш брандмауэр блокирует ваше SSH-подключение. Отключите правила брандмауэра, блокирующие ваше SSH-подключение, изменив настройки целевого порта на ПРИНЯТЬ.

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

Обзор

Возможность подключения к вашему серверу с помощью SSH удобна в самых разных ситуациях. С его помощью вы можете получить доступ к своему сайту, когда вы заблокированы на панели управления WordPress, выполнять команды через WP-CLI, отслеживать изменения в коде вашего сайта с помощью Git и т. д.

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

  1. Ваша служба SSH не работает.
  2. У вас неверные учетные данные.
  3. Порт, который вы пытаетесь использовать, закрыт.
  4. SSH не установлен на вашем сервере.
  5. Настройки брандмауэра препятствуют подключению SSH.

Экономьте время, деньги и повышайте эффективность сайта с помощью:

  • Мгновенная помощь от экспертов по хостингу WordPress, круглосуточно и без выходных.
  • Интеграция с Cloudflare Enterprise.
  • Глобальный охват аудитории благодаря 29 центрам обработки данных по всему миру.
  • Оптимизация с помощью нашего встроенного мониторинга производительности приложений.

Все это и многое другое в одном плане без долгосрочных контрактов, помощи при миграции и 30-дневной гарантии возврата денег. Ознакомьтесь с нашими планами или поговорите с отделом продаж, чтобы найти план, который подходит именно вам.

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

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

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

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

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

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

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

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

Если терминал предоставляет список параметров команды ssh, клиент SSH установлен в системе. Однако, если он отвечает, что команда не найдена, вам необходимо установить клиент OpenSSH.

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

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

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

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

Примечание. Пошаговое руководство по установке см. в разделе Как установить OpenSSH в CentOS или Как включить SSH в Ubuntu.

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

Точно так же, как вам нужна клиентская версия SSH для доступа к удаленному серверу, вам нужна версия сервера для прослушивания и приема подключений. Поэтому сервер может отказать во входящем соединении, если сервер SSH отсутствует или настройка недействительна.

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

Если на выходе появляется сообщение "Отказано в подключении", перейдите к установке SSH на сервере.

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

Чтобы решить проблему с отсутствующим сервером SSH, обратитесь к инструкции по установке сервера OpenSSH.

Учетные данные неверны

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

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

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

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

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

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

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

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

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

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

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

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

Брандмауэр блокирует SSH-подключение

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

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

Решение. Разрешить подключения SSH через брандмауэр

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

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

SSH-порт закрыт

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

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

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

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

Найдите в выходных данных порт 22 и проверьте, установлено ли для его СОСТОЯНИЯ значение LISTEN.

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

Решение: откройте порт SSH

Чтобы разрешить порту 22 ПРОСЛУШИВАТЬ запросы, используйте команду iptables:

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

Отладка и ведение журнала SSH

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

Существует три уровня детализации:

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

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

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

Еще одна распространенная проблема, с которой вы можете столкнуться, — отказ в разрешении SSH Failed Permission Denied. Узнайте, в чем причина этой ошибки и как ее исправить, в нашей статье «Как исправить отказ в доступе к SSH с отказом в доступе (Publickey, Gssapi-Keyex, Gssapi-With-Mic)».

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

Примечание. Обсуждаемые здесь команды были протестированы в Ubuntu 20.04 LTS. Эти же команды действительны и для системы Debian.

Исправить ошибку отказа в соединении

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

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

Убедитесь, что OpenSSH установлен

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

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

Эта команда в основном отфильтровывает термин «openssh-server» из списка установленных пакетов. Если вы получаете следующий аналогичный вывод, это означает, что сервер OpenSSH установлен. С другой стороны, если вы не получаете выходных данных, это означает, что OpenSSH отсутствует на целевом сервере.

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

Затем введите пароль sudo и, когда появится запрос на подтверждение, нажмите «y». После установки подтвердите его с помощью той же команды

Проверить службу SSH

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

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

Если вы видите следующий вывод, это означает, что служба активна и работает в фоновом режиме.

С другой стороны, если вы получаете неактивный (мертвый), это означает, что служба не работает. Вы можете запустить службу OpenSSH с помощью следующей команды от имени sudo в Терминале:

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

Проверьте порт прослушивания SSH-сервера

Еще одна причина получения сообщения об ошибке "Отказано в соединении" – попытка подключения к неверному порту. Например, если сервер настроен на прослушивание порта 2244, а вы пытаетесь подключиться к порту 22 по умолчанию, то в этом случае вы получите сообщение об ошибке «Отказано в соединении».

Прежде чем пытаться подключиться, необходимо проверить прослушиваемый порт SSH-сервера. Если это порт по умолчанию (22), то вы можете подключить его с помощью следующей команды:

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

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

Вы получите вывод, аналогичный следующему:

В третьем столбце вы можете увидеть порт прослушивания сервера — 2244. В этом случае вам нужно будет подключиться к SSH-серверу, используя этот порт.

Разрешить SSH в брандмауэре

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

Например, если сервер SSH прослушивает порт 2244, вы можете разрешить его в брандмауэре следующим образом:

Перезагрузите брандмауэр с помощью следующей команды:

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

Следующий вывод показывает, что порт 2244 разрешен в брандмауэре.

Разрешить конфликт повторяющихся IP-адресов

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

Установите утилиту arping в вашей системе с помощью следующей команды:

Затем пропингуйте IP-адрес SSH-сервера.

Если в выходных данных вы видите ответ с более чем одного MAC-адреса, это означает, что в системе работает дублирующийся IP-адрес. В этом случае измените IP-адрес SSH-сервера и повторите попытку подключения с новым IP-адресом.

Вот как исправить ошибку «Отказ в соединении» через порт 22 в системах Linux. В этой статье мы описали несколько способов, которые наверняка помогут вам в решении ошибки «Отказ в соединении».

Об авторе

Карим Буздар

Карим Буздар имеет степень инженера в области телекоммуникаций и несколько сертификатов системного администратора. Как ИТ-инженер и технический автор, он пишет для различных веб-сайтов. Он ведет блог на LinuxWays.

OpenSSH — это версия протокола Secure Shell (SSH) с открытым исходным кодом, которую можно использовать для удаленного входа на сервер и для управления удаленными системами на базе Linux.

OpenSSH обеспечивает безопасную зашифрованную связь между двумя ненадежными хостами по незащищенной сети.

OpenSSH также предоставляет sftp и sftp-сервер, которые реализуют более простое решение для передачи файлов и используются в основных инструментах сетевого мониторинга и веб-серверах по всему миру.

В этом руководстве мы покажем вам, как устранить ошибку «отказ в подключении по SSH» при подключении к Ubuntu/Linux.

Подключение к серверу через SSH

Есть два способа подключения к серверу через SSH. Вы можете использовать команду SSH или Putty (или любой другой SSH-клиент, если на то пошло) для подключения к серверу.

Подключиться к серверу с помощью команды SSH

Основной синтаксис команды SSH показан ниже:

ssh Имя пользователя@IP-адрес сервера -p Порт

  • Имя пользователя: учетная запись пользователя на вашем сервере.
  • IP-адрес сервера: IP-адрес или доменное имя вашего сервера.
  • Порт: это номер порта сервера OpenSSH, обычно 22, если вы его не изменили.

Например, давайте подключим удаленный сервер с именем пользователя vyom , IP-адресом 192.168.0.102 и номером порта 22:

ssh vyom@192.168.0.102 -p 22

При первом подключении к серверу через SSH вы должны увидеть следующее сообщение:

Невозможно установить подлинность хоста 192.168.0.102 (192.168.0.102).
Отпечаток ключа ECDSA: f7:9c:72:63:33:ac:d6:49:26:9c:af:c6:ff:11:27:01.
Вы уверены, что хотите продолжить подключение (да/нет)? да

Введите yes и нажмите Enter , вам будет предложено ввести пароль для пользователя vyom. Введите пароль и нажмите Enter, чтобы подключиться к серверу. Вы должны увидеть следующий вывод:

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

Подключить сервер с помощью Putty

Putty — это клиентское программное обеспечение SSH с открытым исходным кодом, используемое для подключения SSH-сервера из операционных систем на базе Windows. Программу Putty можно загрузить со страницы загрузки Putty.

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

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

Нажмите кнопку «Принять». Вы должны увидеть подсказку терминала, запрашивающую ваше имя пользователя.

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

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

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

Шаг 1

Во-первых, убедитесь, что на вашем сервере установлен пакет openssh-server.

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

dpkg -l | grep openssh-сервер

Если сервер openssh установлен, вы должны увидеть следующий вывод:

ii openssh-server 1:6.6p1-2ubuntu2.13 сервер защищенной оболочки (SSH) amd64 для безопасного доступа с удаленных компьютеров

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

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

Шаг 2

Служба OpenSSH использует демон sshd для прослушивания входящих подключений и обработки аутентификации пользователей. Если эта служба выйдет из строя, произойдет сбой подключения, и вы получите сообщение об ошибке SSH-подключения.

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

Если он запущен, вы должны увидеть следующий вывод:

запуск/выполнение ssh, процесс 5476

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

пс-эф | grep ssh

Вы должны увидеть следующий вывод:

vyom 4651 4407 0 09:19 pts/0 00:00:00 ssh vyom@192.168.0.102 -p 22
root 4652 1 0 09:19 ? 00:00:00 sshd: вём [прив]
вём 4782 4652 0 09:20 ? 00:00:00 sshd: vyom@pts/18
root 5167 1 0 09:32 ? 00:00:00 sshd: вём [прив]
вём 5229 5167 0 09:33 ? 00:00:00 sshd: vyom@pts/27
root 5476 1 0 09:46 ?00:00:00 /usr/sbin/sshd -D
vyom 5532 3678 0 09:50 pts/15 00:00:00 nano New/New/SSH/ssh
root 5584 5410 0 09: 54 балла/18 00:00:00 grep --color=auto ssh

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

Вы должны увидеть вывод вышеуказанных команд на следующем экране:

Шаг 3

По умолчанию OpenSSH работает на порту 22 и уязвим для атак. Иногда вы получаете сообщение об ошибке "Ошибка сети: Отказано в соединении", если ваш SSH-сервер прослушивает другой порт.

Во-первых, вам нужно найти открытые порты на вашем сервере с помощью команды Nmap:

Вы должны увидеть следующий вывод:

В приведенном выше выводе вы должны увидеть, что порты 2200 и 7070 открыты на вашем сервере.

Теперь поочередно проверьте, какая служба работает на заданных портах (2200, 7070):

nc -v -nn 192.168.0.102 2200

Вы должны увидеть, что служба SSH работает на порту 2200:

Подключение к порту 192.168.0.102 2200 [tcp/*] выполнено успешно!
SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.13

Вы также можете проверить порт прослушивания OpenSSH, открыв файл:

/etc/ssh/sshd_config

Теперь вы сможете подключиться к серверу OpenSSH, используя порт 2200, как показано ниже:

ssh vyom@192.168.0.102 -p 2200

Вы должны увидеть вывод всех команд на следующем экране:

Шаг 4

В некоторых случаях вы получаете сообщение об ошибке «Ошибка сети: в соединении отказано», если IP-адрес вашего сервера OpenSSH конфликтует с другими системами в вашей сети.

Вы можете использовать инструмент arp-scan для проверки повторяющегося IP-адреса в вашей сети, как показано ниже:

Вы должны увидеть следующий вывод:

Чтобы устранить эту ошибку, вам потребуется изменить IP-адрес вашего сервера.

Шаг 5

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

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

Вы должны увидеть, что ваш сервер фильтруется брандмауэром:

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

Заключение

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

Читайте также: