Поделиться через


Доступ SSH к серверам с поддержкой Azure Arc

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

Преимущества

Доступ SSH к серверам с поддержкой Arc обеспечивает следующие преимущества:

  • Общедоступный IP-адрес или открытые порты SSH не требуются
  • Доступ к компьютерам Windows и Linux
  • Возможность входа как локального пользователя или пользователя Azure (только Для Linux)
  • Поддержка других средств на основе OpenSSH с поддержкой файла конфигурации

Предпосылки

  • Разрешения пользователя: роль владельца или участника, назначенная целевому серверу с поддержкой Arc.
  • Сервер с поддержкой Arc:
    • Версия гибридного агента: 1.31.xxxx или более поздней
    • Необходимо включить службу SSH (sshd).

Для Linux установите openssh-server с помощью диспетчера пакетов. Вы можете проверить, работает ли sshd в Linux, выполнив следующую команду:

ps -aux | grep sshd

Сведения о Windows см. в разделе "Включить OpenSSH". Вы можете проверить, установлен ли ssh и запущен с помощью следующих команд:

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

# Check the sshd service is running
Get-Service sshd

Подсказка

Начиная с Windows Server 2025, OpenSSH устанавливается по умолчанию.

Аутентификация Microsoft Entra

Чтобы использовать Microsoft Entra для проверки подлинности, необходимо установить aadsshlogin и aadsshlogin-selinux (по мере необходимости) на сервере с поддержкой Arc. Эти пакеты устанавливаются при развертывании AADSSHLoginForLinux машины.

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

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

Пользователь Azure с назначенной ролью владельца или участника для виртуальной машины не имеет автоматических привилегий на вход в Microsoft Entra на виртуальную машину через SSH. Это позволяет обеспечить преднамеренное и прошедшее аудит разделение между пользователями, управляющими виртуальными машинами, и пользователями с доступом к виртуальным машинам. Так как эти роли предоставляют высокий уровень доступа, рассмотрите возможность использования Microsoft Entra Privileged Identity Management для аудируемого доступа по требованию.

Примечание.

Роль входа администратора виртуальной машины и роль входа пользователя виртуальной машины использует dataActions, и эти роли можно назначать на уровне группы управления, подписки, группы ресурсов или ресурса. Рекомендуется назначать роли на уровне группы управления, подписки или ресурса, а не на уровне отдельных виртуальных машин. Эта практика помогает избежать риска достижения ограничения назначений ролей Azure на подписку.

Доступность

Доступ SSH к серверам с поддержкой Arc в настоящее время поддерживается во всех облачных регионах, поддерживаемых серверами с поддержкой Arc.

Включение доступа SSH к серверам с поддержкой Arc

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

Регистрация поставщика ресурсов HybridConnectivity

Примечание.

Это однократная операция, которая должна выполняться в каждой подписке.

Проверьте, зарегистрирован ли поставщик ресурсов HybridConnectivity:

az provider show -n Microsoft.HybridConnectivity -o tsv --query registrationState

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

az provider register -n Microsoft.HybridConnectivity

Эта операция может занять 2–5 минут. Прежде чем перейти к следующему шагу, убедитесь, что регистрация завершена.

Создание конечной точки подключения по умолчанию

Этот шаг необходимо выполнить для каждого сервера с поддержкой Arc. Однако для этого может не потребоваться выполнить эти команды, так как оно должно выполняться автоматически при первом подключении.

az rest --method put --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default?api-version=2023-03-15 --body '{"properties": {"type": "default"}}'

Примечание.

При использовании Azure CLI из PowerShell следует использовать следующую команду.

az rest --method put --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default?api-version=2023-03-15 --body '{\"properties\":{\"type\":\"default\"}}'

Подтвердите создание конечной точки:

az rest --method get --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default?api-version=2023-03-15

Установка локального средства командной строки

Функции SSH предоставляются в расширении Azure CLI и модуле Azure PowerShell. Установите соответствующее средство для вашей среды.

az extension add --name ssh

Включение функций на сервере с поддержкой Arc

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

az rest --method put --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default/serviceconfigurations/SSH?api-version=2023-03-15 --body "{\"properties\": {\"serviceName\": \"SSH\", \"port\": 22}}"

Примечание.

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

Необязательная установка расширения для входа Microsoft Entra

Чтобы использовать Microsoft Entra для проверки подлинности на компьютерах Linux, необходимо установить aadsshlogin и aadsshlogin-selinux (по мере необходимости) на сервере с поддержкой Arc. Эти пакеты устанавливаются с расширением виртуальной AADSSHLoginForLinux машины.

Чтобы добавить это расширение на портале Azure, перейдите в кластер, а затем в меню службы в разделе "Параметры" выберите "Расширения". Выберите "Добавить", а затем выберите имя входа SSH на основе Azure AD — Azure Arc и завершите установку. Вы также можете установить расширение локально с помощью диспетчера пакетов, выполнив apt-get install aadsshlogin или следующую команду:

az connectedmachine extension create --machine-name <arc enabled server name> --resource-group <resourcegroup> --publisher Microsoft.Azure.ActiveDirectory --name AADSSHLogin --type AADSSHLoginForLinux --location <location>

Примеры

Azure CLI или Azure PowerShell можно использовать для доступа к серверам с поддержкой Arc через SSH. Примеры и дополнительные сведения см. в статье az ssh (Azure CLI) или Az.Ssh (Azure PowerShell).

Отключение SSH на серверах с поддержкой Arc

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

  1. Удалите порт SSH и функциональные возможности с сервера с поддержкой Arc:

    az rest --method delete --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default/serviceconfigurations/SSH?api-version=2023-03-15 --body '{\"properties\": {\"serviceName\": \"SSH\", \"port\": \"22\"}}'
    
  2. Удалите конечную точку подключения по умолчанию:

    az rest --method delete --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default?api-version=2023-03-15
    

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

azcmagent config set incomingconnections.enabled false

Следующие шаги