Compartilhar via


Acesso SSH aos servidores habilitados para Azure Arc

Você pode habilitar conexões baseadas em SSH para servidores habilitados para Arc sem exigir um endereço IP público ou portas abertas adicionais. Essa funcionalidade pode ser usada interativamente, automatizada ou com ferramentas baseadas em SSH existentes, expandindo o impacto das ferramentas de gerenciamento existentes em servidores habilitados para Azure Arc.

Benefícios

O acesso SSH aos servidores habilitados para Arc oferece os seguintes benefícios:

  • Nenhum endereço IP público ou portas SSH abertas necessárias
  • Acesso a computadores Windows e Linux
  • Capacidade de fazer logon como um usuário local ou um Usuário do Azure (somente Linux)
  • Suporte para outras ferramentas baseadas em OpenSSH com suporte a arquivos de configuração

Pré-requisitos

  • Permissões de usuário: função de proprietário ou colaborador atribuída ao servidor de destino habilitado para Arc.
  • Servidor habilitado para Arc:
    • Versão do Agente Híbrido: 1.31.xxxx ou superior
    • O serviço SSH ("sshd") deve estar habilitado.

Para Linux, instale openssh-server por meio de um gerenciador de pacotes. Você pode verificar se o sshd está em execução no Linux executando o seguinte comando:

ps -aux | grep sshd

Para Windows, consulte Habilitar OpenSSH. Você pode verificar se o ssh está instalado e em execução com os seguintes comandos:

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

# Check the sshd service is running
Get-Service sshd

autenticação do Microsoft Entra

Se você usar o Microsoft Entra para autenticação, deverá instalar aadsshlogin e aadsshlogin-selinux (conforme apropriado) no servidor habilitado para Arc. Esses pacotes são instalados com a extensão da VM AADSSHLoginForLinux.

Você também deve configurar atribuições de função para a VM (máquina virtual). Duas funções do Azure são usadas para autorizar o logon na VM:

  • Logon do Administrador de Máquina Virtual: os usuários que têm essa função atribuída podem fazer logon em uma VM do Azure com privilégios de administrador.
  • Logon do Usuário da Máquina Virtual: os usuários que têm essa função atribuída podem fazer logon em uma VM do Azure com privilégios de usuário regulares.

Um usuário do Azure com a função de Proprietário ou Colaborador atribuída a uma VM não tem automaticamente privilégios para acessar a VM via SSH com o Microsoft Entra. Há uma separação intencional (e auditada) entre o conjunto de pessoas que controla as máquinas virtuais e o conjunto de pessoas que pode acessar as máquinas virtuais.

Observação

As funções Logon de Administrador da Máquina Virtual e Logon de Usuário da Máquina Virtual usam dataActions e podem ser atribuídas no escopo do grupo de gerenciamento, da assinatura, do grupo de recursos ou do recurso. Recomendamos que você atribua as funções no nível do grupo de gerenciamento, da assinatura ou do recurso e não no nível da VM individual. Essa prática evita o risco de atingir o limite de atribuições de função do Azure por assinatura.

Disponibilidade

Atualmente, há suporte para acesso SSH a servidores habilitados para Arc em todas as regiões de nuvem compatíveis com servidores habilitados para Arc.

Habilitar o acesso SSH a servidores habilitados para Arc

Para habilitar o acesso SSH aos servidores habilitados para Arc, siga as etapas nesta seção.

Registrar o provedor de recursos HybridConnectivity

Observação

Essa é uma operação única que precisa ser executada em cada assinatura.

Verifique se o provedor de recursos HybridConnectivity foi registrado:

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

Se o provedor de recursos não tiver sido registrado, execute o seguinte comando para registrá-lo:

az provider register -n Microsoft.HybridConnectivity

Essa operação pode levar de dois a cinco minutos para ser concluída. Verifique se o registro foi concluído antes de prosseguir para a próxima etapa.

Criar ponto de extremidade de conectividade padrão

Esta etapa deverá ser realizada para cada servidor habilitado para Arc. No entanto, talvez você não precise executar esses comandos para fazer isso, pois ele deve ser concluído automaticamente na primeira conexão.

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"}}'

Observação

Siga a etapa a seguir se estiver usando a CLI do Azure no 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\"}}'

Valide a criação do ponto de extremidade:

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

Instalar a ferramenta de linha de comando local

A funcionalidade SSH é fornecida em uma extensão da CLI do Azure e em um módulo do Azure PowerShell. Instale a ferramenta apropriada para seu ambiente.

az extension add --name ssh

Habilitar a funcionalidade no servidor habilitado para Arc

Para usar o recurso de conexão SSH, você deve atualizar a Configuração de Serviço no Ponto de Extremidade de Conectividade no servidor habilitado para Arc para permitir a conexão SSH a uma porta específica. Você só pode permitir a conexão com uma única porta. As ferramentas da CLI tentam atualizar a porta permitida em runtime, mas a porta pode ser configurada manualmente com o comando a seguir. Se você estiver usando uma porta não padrão para sua conexão SSH, substitua a porta 22 pela porta desejada.

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}}"

Observação

Pode haver um atraso depois de atualizar a Configuração de Serviço antes que você possa se conectar.

Opcional: instalar a extensão de logon do Microsoft Entra

Para usar o Microsoft Entra para autenticação em seus computadores Linux, você deve instalar aadsshlogin e aadsshlogin-selinux (conforme apropriado) no servidor habilitado para Arc. Esses pacotes são instalados com a extensão da VM AADSSHLoginForLinux.

Para adicionar essa extensão no portal do Azure, navegue até o cluster e, no menu de serviço, em Configurações, selecione Extensões. Selecione Adicionar e selecione Logon SSH baseado no Azure AD – Azure Arc e conclua a instalação. Você também pode instalar a extensão localmente por meio de um gerenciador de pacotes executando apt-get install aadsshlogin ou o seguinte comando:

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

Exemplos

Para exibir exemplos e mais detalhes, exiba a página de documentação da CLI do Az para az ssh ou a página de documentação do Azure PowerShell para Az.Ssh.

Desabilitar SSH para servidores habilitados para Arc

Se você precisar remover o acesso SSH aos servidores habilitados para Arc, siga as etapas abaixo.

  1. Remover a porta SSH e a funcionalidade do servidor habilitado para 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. Excluir o ponto de extremidade de conectividade padrão:

    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
    

Próximas etapas