Entre em uma máquina virtual Linux no Azure usando o Microsoft Entra ID e o OpenSSH
Para melhorar a segurança das máquinas virtuais (VMs) Linux no Azure, você pode integrar com a autenticação do Microsoft Entra. Agora você pode usar o Microsoft Entra ID como uma plataforma de autenticação principal e uma autoridade de certificação para SSH em uma VM Linux usando o Microsoft Entra ID e a autenticação baseada em certificado OpenSSH. Essa funcionalidade permite que as organizações gerenciem o acesso a VMs com o RBAC (controle de acesso baseado em função) e as políticas de Acesso Condicional do Azure.
Este artigo mostra como criar e configurar uma VM Linux e fazer login com o Microsoft Entra ID usando a autenticação baseada em certificado OpenSSH.
Há muitos benefícios de segurança de usar o Microsoft Entra ID com autenticação baseada em certificado OpenSSH para entrar em VMs Linux no Azure. Entre eles contam-se:
- Use suas credenciais do Microsoft Entra para entrar em VMs Linux do Azure.
- Obtenha autenticação baseada em chave SSH sem precisar distribuir chaves SSH para usuários ou provisionar chaves públicas SSH em qualquer VM Linux do Azure que você implantar. Essa experiência é muito mais simples do que ter que se preocupar com a expansão de chaves públicas SSH obsoletas que podem causar acesso não autorizado.
- Reduza a dependência de contas de administrador local, roubo de credenciais e credenciais fracas.
- Ajude a proteger VMs Linux configurando a complexidade da senha e as políticas de tempo de vida da senha para o Microsoft Entra ID.
- Com o RBAC, especifique quem pode entrar em uma VM como um usuário regular ou com privilégios de administrador. Quando os usuários ingressam em sua equipe, você pode atualizar a política RBAC do Azure para que a VM conceda acesso conforme apropriado. Quando os funcionários deixam sua organização e suas contas de usuário são desabilitadas ou removidas do Microsoft Entra ID, eles não têm mais acesso aos seus recursos.
- Com o Acesso Condicional, configure políticas para exigir autenticação multifator ou para exigir que seu dispositivo cliente seja gerenciado (por exemplo, compatível ou associado híbrido Microsoft Entra) antes de poder usá-lo SSH em VMs Linux.
- Use as políticas de implantação e auditoria do Azure para exigir o login do Microsoft Entra para VMs Linux e sinalizar contas locais não aprovadas.
Entrar em VMs Linux com o Microsoft Entra ID funciona para clientes que usam os Serviços de Federação do Ative Directory.
Distribuições Linux suportadas e regiões do Azure
As seguintes distribuições Linux são atualmente suportadas para implantações em uma região suportada:
Distribuição | Versão |
---|---|
Base Comum Linux Mariner (CBL-Mariner) | CBL-Mariner 1, CBL-Mariner 2 |
AlmaLinux | AlmaLinux 8, AlmaLinux 9 |
Debian | Debian 9, Debian 10, Debian 11, Debian 12 |
openSUSE | openSUSE Leap 42.3, openSUSE Leap 15.1+ |
Oráculo | Oracle Linux 8, Oracle Linux 9 |
RedHat Enterprise Linux (RHEL) | RHEL 7.4 a RHEL 7.9, RHEL 8.3+, RHEL 9.0+ |
Rochoso | Rochoso 8, Rochoso 9 |
Servidor SUSE Linux Enterprise (SLES) | SLES 12, SLES 15.1+ |
Ubuntu | Ubuntu 16.04 para Ubuntu 24.04 |
As seguintes regiões do Azure são atualmente suportadas para este recurso:
- Azure Global
- Azure Government
- Microsoft Azure operado pela 21Vianet
Não há suporte para o uso da extensão SSH para a CLI do Azure em clusters do Serviço Kubernetes do Azure (AKS). Para obter mais informações, consulte Políticas de suporte para AKS.
Se você optar por instalar e usar a CLI do Azure localmente, ela deverá ser a versão 2.22.1 ou posterior. Execute az --version
para encontrar a versão. Se você precisar instalar ou atualizar, consulte Instalar a CLI do Azure.
Observação
Essa funcionalidade também está disponível para servidores habilitados para Azure Arc.
Atender aos requisitos para login com o Microsoft Entra ID usando autenticação baseada em certificado OpenSSH
Para habilitar o logon do Microsoft Entra por meio da autenticação baseada em certificado SSH para VMs Linux no Azure, certifique-se de atender aos seguintes requisitos de rede, máquina virtual e cliente (cliente SSH).
Rede
A configuração de rede da VM deve permitir o acesso de saída aos seguintes pontos de extremidade pela porta TCP 443.
Azure Global:
https://packages.microsoft.com
: Para instalação e atualizações de pacotes.http://169.254.169.254
: Ponto de extremidade do Serviço de Metadados de Instância do Azure.https://login.microsoftonline.com
: Para fluxos de autenticação baseados em PAM (módulos de autenticação conectáveis).https://pas.windows.net
: Para fluxos RBAC do Azure.
Azure Government:
https://packages.microsoft.com
: Para instalação e atualizações de pacotes.http://169.254.169.254
: Ponto de extremidade do Serviço de Metadados de Instância do Azure.https://login.microsoftonline.us
: Para fluxos de autenticação baseados em PAM.https://pasff.usgovcloudapi.net
: Para fluxos RBAC do Azure.
Microsoft Azure operado pela 21Vianet:
https://packages.microsoft.com
: Para instalação e atualizações de pacotes.http://169.254.169.254
: Ponto de extremidade do Serviço de Metadados de Instância do Azure.https://login.chinacloudapi.cn
: Para fluxos de autenticação baseados em PAM.https://pas.chinacloudapi.cn
: Para fluxos RBAC do Azure.
Máquina virtual
Verifique se sua VM está configurada com a seguinte funcionalidade:
- Identidade gerenciada atribuída ao sistema. Essa opção é selecionada automaticamente quando você usa o portal do Azure para criar VMs e seleciona a opção de logon do Microsoft Entra. Você também pode habilitar a identidade gerenciada atribuída ao sistema em uma VM nova ou existente usando a CLI do Azure.
aadsshlogin
eaadsshlogin-selinux
(se for caso disso). Esses pacotes são instalados com a extensão AADSSHLoginForLinux VM. A extensão é instalada quando você usa o portal do Azure ou a CLI do Azure para criar VMs e habilitar o logon do Microsoft Entra (guia Gerenciamento ).
Cliente
Certifique-se de que o seu cliente cumpre os seguintes requisitos:
Suporte de cliente SSH para certificados baseados em OpenSSH para autenticação. Você pode usar a CLI do Azure (2.21.1 ou posterior) com o OpenSSH (incluído no Windows 10 versão 1803 ou posterior) ou o Azure Cloud Shell para atender a esse requisito.
Extensão SSH para a CLI do Azure. Você pode instalar essa extensão usando
az extension add --name ssh
o . Você não precisa instalar essa extensão quando estiver usando o Azure Cloud Shell, porque ela vem pré-instalada.Se você estiver usando qualquer cliente SSH diferente da CLI do Azure ou do Azure Cloud Shell que ofereça suporte a certificados OpenSSH, ainda precisará usar a CLI do Azure com a extensão SSH para recuperar certificados SSH efêmeros e, opcionalmente, um arquivo de configuração. Em seguida, você pode usar o arquivo de configuração com seu cliente SSH.
Conectividade TCP do cliente para o endereço IP público ou privado da VM. (O encaminhamento ProxyCommand ou SSH para uma máquina com conectividade também funciona.)
Importante
Clientes SSH baseados em PuTTY agora suportam certificados OpenSSH e podem ser usados para fazer login com autenticação baseada em certificado Microsoft Entra OpenSSH.
Habilitar o login do Microsoft Entra para uma VM Linux no Azure
Para usar o logon do Microsoft Entra para uma VM Linux no Azure, você precisa primeiro habilitar a opção de logon do Microsoft Entra para sua VM Linux. Em seguida, você configura atribuições de função do Azure para usuários autorizados a entrar na VM. Finalmente, você usa o cliente SSH que suporta OpenSSH, como a CLI do Azure ou o Azure Cloud Shell, para SSH em sua VM Linux.
Há duas maneiras de habilitar o login do Microsoft Entra para sua VM Linux:
- A experiência do portal do Azure quando você está criando uma VM Linux
- A experiência do Azure Cloud Shell quando você está criando uma VM Linux ou usando uma existente
Portal do Azure
Você pode habilitar o logon do Microsoft Entra para qualquer uma das distribuições Linux suportadas usando o portal do Azure.
Por exemplo, para criar uma VM de suporte de longo prazo (LTS) do Ubuntu Server 18.04 no Azure com login do Microsoft Entra:
- Entre no portal do Azure usando uma conta que tenha acesso para criar VMs e selecione + Criar um recurso.
- Selecione Criar no Ubuntu Server 18.04 LTS na visualização Popular .
- Na guia Gerenciamento:
- Marque a caixa de seleção Login com ID do Microsoft Entra.
- Verifique se a caixa de seleção Identidade gerenciada atribuída ao sistema está marcada.
- Percorra o resto da experiência de criação de uma máquina virtual. Você terá que criar uma conta de administrador com nome de usuário e senha ou chave pública SSH.
Azure Cloud Shell
O Azure Cloud Shell é um shell interativo e gratuito que você pode usar para executar as etapas neste artigo. As ferramentas comuns do Azure são pré-instaladas e configuradas no Cloud Shell para você usar com sua conta. Basta selecionar o botão Copiar para copiar o código, colá-lo no Cloud Shell e, em seguida, selecionar a tecla Enter para executá-lo.
Há algumas maneiras de abrir o Cloud Shell:
- Selecione Experimentar no canto superior direito de um bloco de código.
- Abra o Cloud Shell no seu navegador.
- Selecione o botão Cloud Shell no menu no canto superior direito do portal do Azure.
Se você optar por instalar e usar a CLI do Azure localmente, este artigo exigirá que você use a versão 2.22.1 ou posterior. Execute az --version
para encontrar a versão. Se você precisar instalar ou atualizar, consulte Instalar a CLI do Azure.
- Crie um grupo de recursos executando az group create.
- Crie uma VM executando az vm create. Use uma distribuição suportada em uma região suportada.
- Instale a extensão de VM de login do Microsoft Entra usando az vm extension set.
O exemplo a seguir implanta uma VM e, em seguida, instala a extensão para habilitar o login do Microsoft Entra para uma VM Linux. As extensões de VM são pequenos aplicativos que fornecem tarefas de configuração e automação pós-implantação em Máquinas Virtuais do Azure. Personalize o exemplo conforme necessário para dar suporte aos seus requisitos de teste.
az group create --name AzureADLinuxVM --location southcentralus
az vm create \
--resource-group AzureADLinuxVM \
--name myVM \
--image Ubuntu2204 \
--assign-identity \
--admin-username azureuser \
--generate-ssh-keys
az vm extension set \
--publisher Microsoft.Azure.ActiveDirectory \
--name AADSSHLoginForLinux \
--resource-group AzureADLinuxVM \
--vm-name myVM
Leva alguns minutos para criar a VM e os recursos de suporte.
A extensão AADSSHLoginForLinux pode ser instalada em uma VM Linux existente (distribuição suportada) com um agente VM em execução para habilitar a autenticação do Microsoft Entra. Se você estiver implantando essa extensão em uma VM criada anteriormente, a VM deverá ter pelo menos 1 GB de memória alocada ou a instalação falhará.
O provisioningState
valor de Succeeded
aparece quando a extensão é instalada com êxito na VM. A VM deve ter um agente de VM em execução para instalar a extensão.
Configurar atribuições de função para a VM
Agora que você criou a VM, precisa atribuir uma das seguintes funções do Azure para determinar quem pode entrar na VM. Para atribuir essas funções, você deve ter a função de Administrador de Acesso a Dados de Máquina Virtual ou qualquer função que inclua a Microsoft.Authorization/roleAssignments/write
ação, como a função de Administrador de Controle de Acesso Baseado em Função . No entanto, se você usar uma função diferente de Administrador de Acesso a Dados de Máquina Virtual, recomendamos adicionar uma condição para reduzir a permissão para criar atribuições de função.
- Login de Administrador de Máquina Virtual: os usuários que têm essa função atribuída podem entrar em uma máquina virtual do Azure com privilégios de administrador.
- Login de Usuário da Máquina Virtual: os usuários que têm essa função atribuída podem entrar em uma máquina virtual do Azure com privilégios de usuário regulares.
Para permitir que um usuário entre em uma VM por SSH, você deve atribuir a função Login de Administrador de Máquina Virtual ou Login de Usuário de Máquina Virtual no grupo de recursos que contém a VM e sua rede virtual associada, interface de rede, endereço IP público ou recursos de balanceador de carga.
Um usuário do Azure que tenha a função de Proprietário ou Colaborador atribuída a uma VM não tem automaticamente privilégios para o Microsoft Entra entrar na VM por SSH. Há uma separação intencional (e auditada) entre o conjunto de pessoas que controlam máquinas virtuais e o conjunto de pessoas que podem acessar máquinas virtuais.
Há duas maneiras de configurar atribuições de função para uma VM:
- Experiência do portal do Azure
- Experiência do Azure Cloud Shell
Observação
As funções Login de Administrador de Máquina Virtual e Login de Usuário de Máquina Virtual são usadas dataActions
e podem ser atribuídas no grupo de gerenciamento, assinatura, grupo de recursos ou escopo de recursos. Recomendamos que você atribua as funções no nível de grupo de gerenciamento, assinatura ou grupo de recursos e não no nível de VM individual. Essa prática evita o risco de atingir o limite de atribuições de função do Azure por assinatura.
Portal do Azure
Para configurar atribuições de função para suas VMs Linux habilitadas para ID do Microsoft Entra:
Em Grupo de Recursos, selecione o grupo de recursos que contém a VM e sua rede virtual associada, interface de rede, endereço IP público ou recurso de balanceador de carga.
Selecione Controle de acesso (IAM).
Selecione Adicionar>atribuição de função para abrir a página Adicionar atribuição de função.
Atribua a seguinte função. Para obter etapas detalhadas, consulte Atribuir funções do Azure usando o portal do Azure.
Cenário Valor Funções Login de Administrador de Máquina Virtual ou Login de Usuário de Máquina Virtual Atribuir acesso a Usuário, grupo, entidade de serviço ou identidade gerenciada
Após alguns momentos, a entidade de segurança recebe a função no escopo selecionado.
Azure Cloud Shell
O exemplo a seguir usa az role assignment create para atribuir a função de Logon de Administrador de Máquina Virtual à VM para seu usuário atual do Azure. Você obtém o nome de usuário da sua conta atual do Azure usando az account show e define o escopo para a VM criada em uma etapa anterior usando az vm show.
Você também pode atribuir o escopo em um grupo de recursos ou nível de assinatura. Aplicam-se permissões normais de herança do RBAC do Azure.
username=$(az account show --query user.name --output tsv)
rg=$(az group show --resource-group myResourceGroup --query id -o tsv)
az role assignment create \
--role "Virtual Machine Administrator Login" \
--assignee $username \
--scope $rg
Observação
Se o domínio do Microsoft Entra e o domínio do nome de usuário de login não corresponderem, especifique a ID do objeto da sua conta de usuário usando --assignee-object-id
, e não apenas o nome de usuário do --assignee
. Você pode obter o ID do objeto para sua conta de usuário usando az ad user list.
Para obter mais informações sobre como usar o RBAC do Azure para gerenciar o acesso aos recursos de assinatura do Azure, consulte Etapas para atribuir uma função do Azure.
Instalar a extensão SSH para a CLI do Azure
Se você estiver usando o Azure Cloud Shell, nenhuma outra configuração será necessária porque a versão mínima necessária da CLI do Azure e a extensão SSH para a CLI do Azure já estão incluídas no ambiente do Cloud Shell.
Execute o seguinte comando para adicionar a extensão SSH para a CLI do Azure:
az extension add --name ssh
A versão mínima necessária para a extensão é 0.1.4. Verifique a versão instalada usando o seguinte comando:
az extension show --name ssh
Impor políticas de Acesso Condicional
Você pode impor políticas de Acesso Condicional habilitadas com o login do Microsoft Entra, como:
- Exigindo autenticação multifator.
- Exigindo um dispositivo associado híbrido compatível ou Microsoft Entra para o dispositivo que executa o cliente SSH.
- Verificar riscos antes de autorizar o acesso a VMs Linux no Azure.
O aplicativo que aparece na política de Acesso Condicional é chamado de Logon de VM do Azure Linux.
Observação
A imposição da política de Acesso Condicional que requer conformidade do dispositivo ou associação híbrida do Microsoft Entra no dispositivo que está executando o cliente SSH funciona apenas com a CLI do Azure que está sendo executada no Windows e no macOS. Não há suporte quando você está usando a CLI do Azure no Linux ou no Azure Cloud Shell.
Aplicação em falta
Se o aplicativo de entrada da VM Linux do Azure estiver ausente do Acesso Condicional, verifique se o aplicativo não está no locatário:
- Entre no centro de administração do Microsoft Entra como pelo menos um administrador de aplicativos na nuvem.
- Navegue até Aplicativos de identidade>>Aplicativos corporativos.
- Remova os filtros para ver todos os aplicativos e procure por Máquina Virtual. Se você não vir o Logon de Máquina Virtual Linux do Microsoft Azure como resultado, a entidade de serviço está ausente do locatário.
Faça login usando uma conta de usuário do Microsoft Entra para SSH na VM Linux
Fazer logon usando a CLI do Azure
Digite az login
. Este comando abre uma janela do browser, onde pode iniciar sessão utilizando a sua conta Microsoft Entra.
az login
Em seguida, digite az ssh vm
. O exemplo a seguir resolve automaticamente o endereço IP apropriado para a VM.
az ssh vm -n myVM -g AzureADLinuxVM
Se lhe for pedido, introduza as suas credenciais de início de sessão do Microsoft Entra na página de início de sessão, execute a autenticação multifator e/ou satisfaça as verificações do dispositivo. Você será solicitado somente se a sessão da CLI do Azure ainda não atender a nenhum critério de Acesso Condicional necessário. Feche a janela do navegador, retorne ao prompt SSH e você será conectado automaticamente à VM.
Agora você está conectado à máquina virtual Linux com as permissões de função atribuídas, como Usuário de VM ou Administrador de VM. Se à sua conta de usuário for atribuída a função de Login de Administrador de Máquina Virtual, você poderá usar sudo para executar comandos que exijam privilégios de root.
Faça logon usando o Azure Cloud Shell
Você pode usar o Azure Cloud Shell para se conectar a VMs sem precisar instalar nada localmente em sua máquina cliente. Inicie o Cloud Shell selecionando o ícone do shell no canto superior direito do portal do Azure.
O Cloud Shell se conecta automaticamente a uma sessão no contexto do usuário conectado. Agora execute az login
novamente e passe pelo fluxo de login interativo:
az login
Em seguida, você pode usar os comandos normais az ssh vm
para se conectar usando o nome e o grupo de recursos ou o endereço IP da VM:
az ssh vm -n myVM -g AzureADLinuxVM
Observação
A imposição da política de Acesso Condicional que requer conformidade de dispositivo ou associação híbrida do Microsoft Entra não é suportada quando você estiver usando o Azure Cloud Shell.
Faça login usando a entidade de serviço Microsoft Entra para SSH na VM Linux
A CLI do Azure dá suporte à autenticação com uma entidade de serviço em vez de uma conta de usuário. Como as entidades de serviço não estão vinculadas a nenhum usuário específico, os clientes podem usá-las para SSH em uma VM para dar suporte a quaisquer cenários de automação que possam ter. A entidade de serviço deve ter direitos de Administrador de VM ou de Usuário de VM atribuídos. Atribua permissões no nível da assinatura ou do grupo de recursos.
O exemplo a seguir atribuirá direitos de Administrador de VM à entidade de serviço no nível do grupo de recursos. Substitua os espaços reservados para ID do objeto principal do serviço, ID da assinatura e nome do grupo de recursos.
az role assignment create \
--role "Virtual Machine Administrator Login" \
--assignee-object-id <service-principal-objectid> \
--assignee-principal-type ServicePrincipal \
--scope "/subscriptions/<subscription-id>/resourceGroups/<resourcegroup-name>"
Use o exemplo a seguir para autenticar na CLI do Azure usando a entidade de serviço. Para obter mais informações, consulte o artigo Entrar na CLI do Azure com uma entidade de serviço.
az login --service-principal -u <sp-app-id> -p <password-or-cert> --tenant <tenant-id>
Quando a autenticação com uma entidade de serviço estiver concluída, use os comandos SSH normais da CLI do Azure para se conectar à VM:
az ssh vm -n myVM -g AzureADLinuxVM
Exporte a configuração SSH para uso com clientes SSH que suportam OpenSSH
Entrar em VMs Linux do Azure com a ID do Microsoft Entra dá suporte à exportação do certificado e da configuração do OpenSSH. Isso significa que você pode usar qualquer cliente SSH que ofereça suporte a certificados baseados em OpenSSH para entrar por meio do Microsoft Entra ID. O exemplo a seguir exporta a configuração para todos os endereços IP atribuídos à VM:
az ssh config --file ~/.ssh/config -n myVM -g AzureADLinuxVM
Como alternativa, você pode exportar a configuração especificando apenas o endereço IP. Substitua o endereço IP no exemplo a seguir pelo endereço IP público ou privado da sua VM. (Você deve trazer sua própria conectividade para IPs privados.) Digite az ssh config -h
para obter ajuda com este comando.
az ssh config --file ~/.ssh/config --ip 10.11.123.456
Em seguida, você pode se conectar à VM através do uso normal do OpenSSH. A conexão pode ser feita através de qualquer cliente SSH que use OpenSSH.
Executar sudo com o login do Microsoft Entra
Depois que os usuários aos quais for atribuída a função de Administrador de VM SSH com êxito em uma VM Linux, eles poderão executar sudo sem nenhum outro requisito de interação ou autenticação. Os usuários aos quais é atribuída a função Usuário da VM não poderão executar o sudo.
Conectar-se a VMs em conjuntos de dimensionamento de máquinas virtuais
Há suporte para conjuntos de dimensionamento de máquina virtual, mas as etapas são ligeiramente diferentes para habilitar e conectar a VMs em um conjunto de dimensionamento de máquina virtual:
Crie um conjunto de dimensionamento de máquina virtual ou escolha um que já exista. Habilite uma identidade gerenciada atribuída ao sistema para seu conjunto de dimensionamento de máquina virtual:
az vmss identity assign --name myVMSS --resource-group AzureADLinuxVM
Instale a extensão Microsoft Entra no seu conjunto de dimensionamento de máquina virtual:
az vmss extension set --publisher Microsoft.Azure.ActiveDirectory --name AADSSHLoginForLinux --resource-group AzureADLinuxVM --vmss-name myVMSS
Os conjuntos de dimensionamento de máquinas virtuais geralmente não têm endereços IP públicos. Você deve ter conectividade com eles de outra máquina que possa acessar sua rede virtual do Azure. Este exemplo mostra como usar o IP privado de uma VM em um conjunto de escala de máquina virtual para se conectar a partir de uma máquina na mesma rede virtual:
az ssh vm --ip 10.11.123.456
Observação
Não é possível determinar automaticamente os endereços IP da VM do conjunto de dimensionamento da máquina virtual usando as --resource-group
opções e --name
.
Migrar da versão anterior (visualização)
Se você estiver usando a versão anterior do logon do Microsoft Entra para Linux baseada no fluxo de código do dispositivo, conclua as seguintes etapas usando a CLI do Azure:
Desinstale a extensão AADLoginForLinux na VM:
az vm extension delete -g MyResourceGroup --vm-name MyVm -n AADLoginForLinux
Observação
A desinstalação da extensão pode falhar se houver algum usuário do Microsoft Entra atualmente conectado na VM. Verifique se todos os usuários estão desconectados primeiro.
Habilite a identidade gerenciada atribuída ao sistema em sua VM:
az vm identity assign -g myResourceGroup -n myVm
Instale a extensão AADSSHLoginForLinux na VM:
az vm extension set \ --publisher Microsoft.Azure.ActiveDirectory \ --name AADSSHLoginForLinux \ --resource-group myResourceGroup \ --vm-name myVM
Usar a Política do Azure para atender aos padrões e avaliar a conformidade
Use a Política do Azure para:
- Certifique-se de que o login do Microsoft Entra esteja habilitado para suas máquinas virtuais Linux novas e existentes.
- Avalie a conformidade do seu ambiente em escala em um painel de conformidade.
Com esse recurso, você pode usar vários níveis de aplicação. Você pode sinalizar VMs Linux novas e existentes em seu ambiente que não tenham o login do Microsoft Entra habilitado. Você também pode usar a Política do Azure para implantar a extensão Microsoft Entra em novas VMs Linux que não têm o logon do Microsoft Entra habilitado, bem como corrigir VMs Linux existentes para o mesmo padrão.
Além desses recursos, você pode usar a Política do Azure para detetar e sinalizar VMs Linux que tenham contas locais não aprovadas criadas em suas máquinas. Para saber mais, consulte a Política do Azure.
Resolução de problemas de início de sessão
Use as seções a seguir para corrigir erros comuns que podem acontecer quando você tenta SSH com credenciais do Microsoft Entra.
Não foi possível recuperar o token do cache local
Se você receber uma mensagem informando que o token não pôde ser recuperado do cache local, deverá executar az login
novamente e passar por um fluxo de entrada interativo. Reveja a secção sobre início de sessão utilizando o Azure Cloud Shell.
Acesso negado: função do Azure não atribuída
Se você vir um erro "Função do Azure não atribuída" em seu prompt SSH, verifique se você configurou as políticas do RBAC do Azure para a VM que concede ao usuário a função Logon de Administrador de Máquina Virtual ou a função Logon de Usuário de Máquina Virtual. Se você estiver tendo problemas com atribuições de função do Azure, consulte o artigo Solucionar problemas do RBAC do Azure.
Problemas ao excluir a extensão antiga (AADLoginForLinux)
Se os scripts de desinstalação falharem, a extensão poderá ficar presa em um estado de transição. Quando isso acontece, a extensão pode deixar pacotes que deveria desinstalar durante sua remoção. Nesses casos, é melhor desinstalar manualmente os pacotes antigos e, em seguida, tentar executar o az vm extension delete
comando.
Para desinstalar pacotes antigos:
- Faça login como um usuário local com privilégios de administrador.
- Verifique se não há usuários conectados ao Microsoft Entra. Chame o
who -u
comando para ver quem está conectado. Em seguida, usesudo kill <pid>
para todos os processos de sessão que o comando anterior relatou. - Executar
sudo apt remove --purge aadlogin
(Ubuntu/Debian),sudo yum remove aadlogin
(RHEL) ousudo zypper remove aadlogin
(openSUSE ou SLES). - Se o comando falhar, tente as ferramentas de baixo nível com scripts desativados:
- Para Ubuntu / Debian, execute
sudo dpkg --purge aadlogin
. Se ainda estiver falhando por causa do script, exclua o/var/lib/dpkg/info/aadlogin.prerm
arquivo e tente novamente. - Para tudo o resto, corra
rpm -e --noscripts aadogin
.
- Para Ubuntu / Debian, execute
- Repita os passos 3 a 4 para o pacote
aadlogin-selinux
.
Erros de instalação da extensão
A instalação da extensão AADSSHLoginForLinux VM em computadores existentes pode falhar com um dos seguintes códigos de erro conhecidos.
Código de saída diferente de zero 22
Se você obtiver o código de saída 22, o status da extensão AADSSHLoginForLinux VM será exibido como Transição no portal.
Essa falha acontece porque uma identidade gerenciada atribuída ao sistema é necessária.
A solução consiste em:
- Desinstale a extensão com falha.
- Habilite uma identidade gerenciada atribuída ao sistema na VM do Azure.
- Execute o comando de instalação da extensão novamente.
Código de saída diferente de zero 23
Se você receber o código de saída 23, o status da extensão AADSSHLoginForLinux VM será exibido como Transição no portal.
Essa falha acontece quando a extensão de VM AADLoginForLinux mais antiga ainda está instalada.
A solução é desinstalar a extensão mais antiga da VM AADLoginForLinux da VM. O status da nova extensão AADSSHLoginForLinux VM será alterado para Provisionamento bem-sucedido no portal.
Falhas de instalação ao usar um proxy HTTP
A extensão precisa de uma conexão HTTP para instalar pacotes e verificar a existência de uma identidade do sistema. Ele é executado no contexto de e requer uma alteração para informar o agente sobre as configurações de walinuxagent.service
proxy. Abra /lib/systemd/system/walinuxagent.service
o arquivo na máquina de destino e adicione a seguinte linha após [Service]
:
[Service]
Environment="http_proxy=http://proxy.example.com:80/"
Environment="https_proxy=http://proxy.example.com:80/"
Environment="no_proxy=169.254.169.254"
Reinicie o agente (sudo systemctl restart walinuxagent
). Agora tente novamente.
O comando az ssh vm falha com KeyError access_token
Se o az ssh vm
comando falhar, você está usando uma versão desatualizada do cliente CLI do Azure.
A solução é atualizar o cliente CLI do Azure para a versão 2.21.0 ou posterior.
A conexão SSH está fechada
Depois que um usuário entrar com êxito usando az login
o , a conexão com a VM através az ssh vm -ip <address>
ou az ssh vm --name <vm_name> -g <resource_group>
pode falhar com "Conexão fechada por <ip_address> porta 22".
Uma causa para esse erro é que o usuário não está atribuído à função Login de Administrador de Máquina Virtual ou Login de Usuário de Máquina Virtual dentro do escopo dessa VM. Nesse caso, a solução é adicionar o usuário a uma dessas funções do Azure RBAC dentro do escopo dessa VM.
Esse erro também pode acontecer se o usuário estiver em uma função RBAC do Azure necessária, mas a identidade gerenciada atribuída ao sistema tiver sido desabilitada na VM. Nesse caso, execute estas ações:
- Habilite a identidade gerenciada atribuída ao sistema na VM.
- Aguarde alguns minutos antes que o usuário tente se conectar usando o
az ssh vm --ip <ip_address>
.
Problemas de conexão com conjuntos de dimensionamento de máquinas virtuais
As conexões de VM com conjuntos de dimensionamento de máquina virtual podem falhar se as instâncias do conjunto de escala estiverem executando um modelo antigo.
A atualização das instâncias do conjunto de escala para o modelo mais recente pode resolver o problema, especialmente se uma atualização não tiver sido feita desde que a extensão Microsoft Entra Login foi instalada. A atualização de uma instância aplica uma configuração de conjunto de escala padrão à instância individual.
As instruções AllowGroups ou DenyGroups no sshd_config fazem com que o primeiro logon falhe para usuários do Microsoft Entra
Se sshd_config contiver uma ou DenyGroups
AllowGroups
instruções, o primeiro login falhará para usuários do Microsoft Entra. Se a instrução foi adicionada depois que os usuários já tiveram um login bem-sucedido, eles podem fazer login.
Uma solução é remover AllowGroups
e DenyGroups
declarações de sshd_config.
Outra solução é mover AllowGroups
e DenyGroups
para uma match user
seção em sshd_config. Verifique se o modelo de correspondência exclui os usuários do Microsoft Entra.
Obtendo permissão negada ao tentar se conectar do Shell do Azure à VM Linux Red Hat/Oracle 7.X.
A versão do servidor OpenSSH na VM de destino 7.4 é muito antiga. Versão incompatível com a versão 8.8 do cliente OpenSSH. Consulte Os certificados RSA SHA256 não funcionam mais para obter mais informações.
Solução alternativa:
- Adicionando opção
"PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com"
noaz ssh vm
comando.
az ssh vm -n myVM -g MyResourceGroup -- -A -o "PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com"
- Adicionar a opção
"PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com"
no/home/<user>/.ssh/config file
.
Adicione o "PubkeyAcceptedKeyTypes +ssh-rsa-cert-v01@openssh.com"
no arquivo de configuração do cliente.
Host *
PubkeyAcceptedKeyTypes +ssh-rsa-cert-v01@openssh.com