Подробные инструкции по устранению неполадок SSH-подключений к виртуальной машине Linux в Azure
Область применения: ✔️ виртуальные машины Linux
Клиенту SSH не всегда удается получить доступ к SSH-службе на виртуальной машине по многим причинам. Если вы использовали более общие действия по устранению неполадок SSH, то необходимы более конкретные действия для устранения проблемы подключения. В этой статье подробно изложено, как определить, где происходит сбой подключения SSH и как его устранить.
Выполнение предварительных действий
На следующей схеме показаны задействованные при этом компоненты.
Приведенные ниже шаги помогут вам выявить источник сбоя и определить способы его устранения или обхода.
Проверьте состояние виртуальной машины на портале. На портале Azure выберите Виртуальные машины>Имя виртуальной машины.
Панель состояния виртуальной машины должна отображать состояние Выполняется. Прокрутите страницу вниз для просмотра последних действий в ресурсах вычислений, хранения и сетевых ресурсах.
Выберите Параметры, чтобы проверить конечные точки, IP-адреса, группы безопасности и другие параметры.
Виртуальная машина должна иметь конечную точку, определенную для SSH-трафика, которую можно просмотреть в разделе Конечные точки или Группа безопасности сети. Конечные точки в виртуальных машинах, созданных с помощью Resource Manager, сохраняются в группе безопасности сети. Убедитесь, что к группе безопасности сети применены правила и что в подсети присутствует ссылка на них.
Чтобы проверить сетевое подключение, проверьте настроенные конечные точки и определите, можно ли подключиться к виртуальной машине с помощью другого протокола, например HTTP, или другой службы.
Выполнив эти действия, попытайтесь создать SSH-подключение еще раз.
Поиск источника проблемы
Неспособность клиента SSH подключиться к службе SSH на виртуальной машине Azure может быть связана с проблемами и неправильными настройками в областях, перечисленных ниже:
- Клиентский компьютер SSH.
- Пограничное устройство организации.
- Группы безопасности сети
- Виртуальная машина Azure под управлением Linux
Источник 1: клиентский компьютер SSH
Чтобы исключить компьютер из числа возможных источников ошибок, убедитесь, что с его помощью можно установить SSH-подключения к другому локальному компьютеру под управлением Linux.
В случае сбоя подключения проверьте, нет ли на компьютере:
- настройки локального брандмауэра, блокирующей входящий и исходящий 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, перейдите к источнику 3: группы безопасности сети.
Если у вас нет компьютера, непосредственно подключенного к Интернету, создайте виртуальную машину Azure, размещенную в собственной группе ресурсов или облачной службе, и используйте ее. Дополнительные сведения см. в статье Создание виртуальной машины Linux с помощью интерфейса командной строки Azure 2.0. Завершив проверку, удалите группу ресурсов или виртуальную машину и облачную службу.
Если вам удается установить SSH-подключение с компьютера, непосредственно подключенного к Интернету, убедитесь, что на пограничном устройстве вашей организации отсутствуют следующие компоненты:
- внутренний брандмауэр, который блокирует SSH-трафик в Интернете;
- прокси-сервер, который не позволяет устанавливать SSH-подключения;
- программное обеспечение для обнаружения атак и мониторинга сети, которое работает на устройствах в вашей сети периметра и блокирует SSH-подключения.
При поддержке администратора сети измените параметры пограничного устройства организации таким образом, чтобы оно не блокировало SSH-трафик через Интернет.
Источник 3. Группы безопасности сети
Группы безопасности сети позволяют точнее настраивать параметры разрешенного входящего и исходящего трафика. Можно создавать правила, которые распространяются на подсети и облачные службы в виртуальной сети Azure. Проверьте свои правила групп безопасности сети и убедитесь, что входящий и исходящий SSH-трафик разрешен. Дополнительные сведения см. в статье Группа безопасности сети.
Для проверки конфигурации NSG можно также использовать функцию проверки IP-адреса. Дополнительные сведения см. в статье Обзор мониторинга сети Azure.
Источник 4. Виртуальная машина Azure под управлением Linux
Последним потенциальным источником проблем является сама виртуальная машина Azure.
Выполните указания по сбросу пароля на виртуальных машинах Linux (если вы еще этого не сделали).
Попытайтесь снова установить подключение со своего компьютера. Если вам по-прежнему не удается подключиться, проверьте, не соответствует ли ваша среда одному из следующих условий:
- На целевой виртуальной машине не запущена SSH-служба.
- SSH-служба не прослушивает TCP-порт 22. Чтобы проверить это, установите клиент telnet на локальном компьютере и выполните команду telnet cloudServiceName.cloudapp.net 22. Эта команда позволит определить, разрешает ли виртуальная машина входящий и исходящий обмен данными с конечной точкой SSH.
- Правила локального брандмауэра на целевой виртуальной машине блокируют входящий и исходящий SSH-трафик.
- Программное обеспечение для обнаружения атак и мониторинга сети на виртуальной машине Azure блокирует SSH-подключения.
Дополнительные ресурсы
Дополнительные сведения об устранении неполадок с доступом к приложениям см. в статье "Устранение неполадок доступа к приложению, работающему на виртуальной машине Azure".
Свяжитесь с нами для получения помощи
Если у вас есть вопросы или помощь, создайте запрос на поддержку или попросите сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.