Подробные инструкции по устранению неполадок SSH при подключении к виртуальной машине Linux в Azure

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

Предварительные действия

На следующей схеме показаны задействованные компоненты.

Схема, на которую показаны компоненты службы SSH.

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

  1. Проверьте состояние виртуальной машины на портале. В портал Azure выберите Имя виртуальной машины>.

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

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

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

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

После выполнения этих действий повторите попытку подключения по протоколу SSH.

Поиск источника проблемы

Клиент SSH на компьютере может не подключиться к службе SSH на виртуальной машине Azure из-за проблем или ошибок в следующих областях:

Источник 1: клиентский компьютер SSH

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

Схема, на котором выделены компоненты клиентского компьютера SSH.

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

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

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

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

  • Chmod 700 ~/.ssh
  • Chmod 644 ~/.ssh/*.pub
  • Chmod 600 ~/.ssh/id_rsa (или любые другие файлы, в которых хранятся закрытые ключи)
  • Chmod 644 ~/.ssh/known_hosts (содержит узлы, к которым вы подключились через SSH)

Источник 2. Пограничное устройство организации

Чтобы исключить пограничное устройство организации в качестве источника сбоя, убедитесь, что компьютер, напрямую подключенный к Интернету, может установить SSH-подключения к виртуальной машине Azure. Если вы обращаетесь к виртуальной машине через VPN-подключение типа "сеть — сеть" или подключение Azure ExpressRoute, перейдите к разделу Источник 4. Группы безопасности сети.

Схема, на котором выделено пограничное устройство организации.

Если у вас нет компьютера, подключенного напрямую к Интернету, создайте новую виртуальную машину Azure в собственной группе ресурсов или облачной службе и используйте эту новую виртуальную машину. Дополнительные сведения см. в статье Создание виртуальной машины под управлением Linux в Azure. После завершения тестирования удалите группу ресурсов или виртуальную машину и облачную службу.

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

  • Внутренний брандмауэр, блокирующий трафик SSH через Интернет
  • Прокси-сервер, который предотвращает SSH-подключения;
  • Программное обеспечение для обнаружения вторжений или по мониторингу сети, работающее на устройствах в пограничной сети, которое предотвращает подключения по протоколу SSH

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

Источник 3. Конечная точка облачной службы и список ACL

Важно!

Классические виртуальные машины будут прекращены 1 сентября 2023 г.

Если вы используете ресурсы IaaS из ASM, завершите миграцию до 1 сентября 2023 г. Мы рекомендуем сделать этот переход быстрее, чтобы воспользоваться преимуществами многочисленных улучшений функций в Azure Resource Manager.

Дополнительные сведения см. в статье Перенос ресурсов IaaS в Azure Resource Manager до 1 сентября 2023 г.

Примечание.

Этот источник применяется только к виртуальным машинам, созданным с помощью классической модели развертывания. Для виртуальных машин, созданных с помощью Resource Manager, перейдите к источнику 4: Группы безопасности сети.

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

Схема: конечная точка облачной службы и список ACL.

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

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

  • Конфигурация конечной точки для трафика SSH на целевой виртуальной машине. Частный TCP-порт конечной точки должен соответствовать TCP-порту, на котором прослушивает служба SSH на виртуальной машине. (Порт по умолчанию — 22). Проверьте номер TCP-порта SSH в портал Azure, выбрав Имявиртуальной>машиныВиртуальные машины >Параметры конечных>точек.
  • Список ACL для конечной точки трафика SSH на целевой виртуальной машине. ACL позволяет указать разрешенный или запрещенный входящий трафик из Интернета на основе его исходного IP-адреса. Неправильно настроенные списки управления доступом могут предотвратить входящий трафик SSH к конечной точке. Проверьте списки ACL, чтобы убедиться, что разрешен входящий трафик с общедоступных IP-адресов прокси-сервера или другого пограничного сервера. Дополнительные сведения см. в разделе Сведения о списках управления доступом к сети (ACL).

Чтобы устранить конечную точку в качестве источника проблемы, удалите текущую конечную точку, создайте другую конечную точку и укажите имя SSH (TCP-порт 22 для номера общедоступного и частного портов). Дополнительные сведения см. в статье Настройка конечных точек на виртуальной машине в Azure.

Источник 4. Группы безопасности сети

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

Для проверки конфигурации NSG также можно использовать проверку IP-адресов. Дополнительные сведения см. в статье Обзор мониторинга сети Azure.

Источник 5. Виртуальная машина Azure под управлением Linux

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

Схема, на котором выделена виртуальная машина Azure под управлением Linux.

Если вы еще не сделали этого, следуйте инструкциям по сбросу пароля виртуальных машин Под управлением Linux.

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

  • Служба SSH не запущена на целевой виртуальной машине.
  • Служба SSH не прослушивает TCP-порт 22. Чтобы протестировать, установите клиент telnet на локальном компьютере и запустите telnet cloudServiceName.cloudapp.net 22. Этот шаг определяет, разрешает ли виртуальная машина входящий и исходящий обмен данными с конечной точкой SSH.
  • Локальный брандмауэр на целевой виртуальной машине содержит правила, которые предотвращают входящий или исходящий трафик SSH.
  • Программное обеспечение для обнаружения вторжений или сетевого мониторинга, работающее на виртуальной машине Azure, предотвращает подключения по протоколу SSH.

Дополнительные ресурсы

Дополнительные сведения об устранении неполадок с доступом к приложениям см. в статье Устранение неполадок с доступом к приложению, работающему на виртуальной машине Azure.

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.