Aanmelden bij een virtuele Linux-machine in Azure met behulp van Microsoft Entra ID en OpenSSH

Let op

In dit artikel wordt verwezen naar CentOS, een Linux-distributie die de status End Of Life (EOL) nadert. Houd rekening met uw gebruik en plan dienovereenkomstig. Zie de Richtlijnen voor het einde van de levensduur van CentOS voor meer informatie.

Om de beveiliging van virtuele Linux-machines (VM's) in Azure te verbeteren, kunt u integreren met Microsoft Entra-verificatie. U kunt nu Microsoft Entra ID gebruiken als een basisverificatieplatform en een certificeringsinstantie voor SSH in een Linux-VM met behulp van Microsoft Entra ID en OpenSSH-verificatie op basis van certificaten. Met deze functionaliteit kunnen organisaties de toegang tot VM's beheren met op rollen gebaseerd toegangsbeheer (RBAC) en beleid voor voorwaardelijke toegang van Azure.

In dit artikel leest u hoe u een Virtuele Linux-machine maakt en configureert en zich aanmeldt met Microsoft Entra ID met behulp van verificatie op basis van OpenSSH-certificaten.

Er zijn veel beveiligingsvoordelen van het gebruik van Microsoft Entra ID met openSSH-verificatie op basis van certificaten om u aan te melden bij Linux-VM's in Azure. Deze omvatten:

  • Gebruik uw Microsoft Entra-referenties om u aan te melden bij Azure Linux-VM's.
  • Haal verificatie op basis van SSH-sleutels op zonder SSH-sleutels te hoeven distribueren naar gebruikers of openbare SSH-sleutels in te richten op virtuele Azure Linux-machines die u implementeert. Deze ervaring is veel eenvoudiger dan dat u zich zorgen hoeft te maken over het ontstaan van verouderde openbare SSH-sleutels die onbevoegde toegang kunnen veroorzaken.
  • Verminder de afhankelijkheid van lokale beheerdersaccounts, referentiediefstal en zwakke referenties.
  • Beveilig virtuele Linux-machines door wachtwoordcomplexiteit en beleid voor levensduur van wachtwoorden te configureren voor Microsoft Entra-id.
  • Geef met RBAC op wie zich als gewone gebruiker of met beheerdersbevoegdheden kan aanmelden bij een virtuele machine. Wanneer gebruikers lid worden van uw team, kunt u het Azure RBAC-beleid voor de VM bijwerken om toegang te verlenen, indien van toepassing. Wanneer werknemers uw organisatie verlaten en hun gebruikersaccounts zijn uitgeschakeld of verwijderd uit Microsoft Entra-id, hebben ze geen toegang meer tot uw resources.
  • Configureer met voorwaardelijke toegang beleidsregels om meervoudige verificatie te vereisen of om te vereisen dat uw clientapparaat wordt beheerd (bijvoorbeeld compatibel of aan Microsoft Entra toegevoegd) voordat u deze SSH kunt gebruiken in Linux-VM's.
  • Gebruik Azure-implementatie- en controlebeleid om aanmelding bij Microsoft Entra voor Linux-VM's te vereisen en om niet-goedgekeurde lokale accounts te markeren.

Aanmelden bij Virtuele Linux-machines met Microsoft Entra ID werkt voor klanten die Active Directory Federation Services gebruiken.

Ondersteunde Linux-distributies en Azure-regio's

De volgende Linux-distributies worden momenteel ondersteund voor implementaties in een ondersteunde regio:

Distributie Versie
Common Base Linux Mariner (CBL-Mariner) CBL-Mariner 1, CBL-Mariner 2
CentOS CentOS 7, CentOS 8
Debian Debian 9, Debian 10, Debian 11, Debian 12
openSUSE openSUSE Leap 42.3, openSUSE Leap 15.1+
Oracle Oracle Linux 8, Oracle Linux 9
RedHat Enterprise Linux (RHEL) RHEL 7.4 tot RHEL 7.9, RHEL 8.3+
SUSE Linux Enterprise Server (SLES) SLES 12, SLES 15.1+
Ubuntu Server Ubuntu Server 16.04 naar Ubuntu Server 22.04, alle secundaire versie na Ubuntu 22.04

De volgende Azure-regio's worden momenteel ondersteund voor deze functie:

  • Azure Global
  • Azure Government
  • Microsoft Azure beheerd door 21Vianet

Het gebruik van de SSH-extensie voor de Azure CLI in AKS-clusters (Azure Kubernetes Service) wordt niet ondersteund. Zie Ondersteuningsbeleid voor AKS voor meer informatie.

Als u ervoor kiest om de Azure CLI lokaal te installeren en te gebruiken, moet dit versie 2.22.1 of hoger zijn. Voer az --version uit om de versie te bekijken. Als u uw CLI wilt installeren of upgraden, raadpleegt u De Azure CLI installeren.

Notitie

Deze functionaliteit is ook beschikbaar voor servers met Azure Arc.

Voldoen aan vereisten voor aanmelding met Microsoft Entra-id met behulp van verificatie op basis van openSSH-certificaten

Als u microsoft Entra-aanmelding wilt inschakelen via verificatie op basis van SSH-certificaten voor Linux-VM's in Azure, moet u voldoen aan de volgende vereisten voor het netwerk, de virtuele machine en de client (SSH-client).

Netwerk

Vm-netwerkconfiguratie moet uitgaande toegang tot de volgende eindpunten via TCP-poort 443 toestaan.

Azure Global:

  • https://packages.microsoft.com: voor pakketinstallatie en upgrades.
  • http://169.254.169.254: Azure Instance Metadata Service-eindpunt.
  • https://login.microsoftonline.com: Voor verificatiestromen op basis van PAM (pluggable authentication modules).
  • https://pas.windows.net: voor Azure RBAC-stromen.

Azure Government:

  • https://packages.microsoft.com: voor pakketinstallatie en upgrades.
  • http://169.254.169.254: Azure Instance Metadata Service-eindpunt.
  • https://login.microsoftonline.us: voor verificatiestromen op basis van PAM.
  • https://pasff.usgovcloudapi.net: voor Azure RBAC-stromen.

Microsoft Azure beheerd door 21Vianet:

  • https://packages.microsoft.com: voor pakketinstallatie en upgrades.
  • http://169.254.169.254: Azure Instance Metadata Service-eindpunt.
  • https://login.chinacloudapi.cn: voor verificatiestromen op basis van PAM.
  • https://pas.chinacloudapi.cn: voor Azure RBAC-stromen.

Virtuele machine

Zorg ervoor dat uw VIRTUELE machine is geconfigureerd met de volgende functionaliteit:

  • Door het systeem toegewezen beheerde identiteit. Deze optie wordt automatisch geselecteerd wanneer u Azure Portal gebruikt om virtuele machines te maken en de aanmeldingsoptie Microsoft Entra te selecteren. U kunt ook door het systeem toegewezen beheerde identiteit inschakelen op een nieuwe of bestaande VIRTUELE machine met behulp van de Azure CLI.
  • aadsshlogin en aadsshlogin-selinux (indien van toepassing). Deze pakketten worden geïnstalleerd met de AADSSHLoginForLinux VM-extensie. De extensie wordt geïnstalleerd wanneer u Azure Portal of de Azure CLI gebruikt om VM's te maken en Aanmelding bij Microsoft Entra in te schakelen (tabblad Beheer ).

Klant

Zorg ervoor dat uw client voldoet aan de volgende vereisten:

  • SSH-clientondersteuning voor op OpenSSH gebaseerde certificaten voor verificatie. U kunt de Azure CLI (2.21.1 of hoger) gebruiken met OpenSSH (opgenomen in Windows 10 versie 1803 of hoger) of Azure Cloud Shell om aan deze vereiste te voldoen.

  • SSH-extensie voor de Azure CLI. U kunt deze extensie installeren met behulp van az extension add --name ssh. U hoeft deze extensie niet te installeren wanneer u Azure Cloud Shell gebruikt, omdat deze vooraf is geïnstalleerd.

    Als u een andere SSH-client gebruikt dan de Azure CLI of Azure Cloud Shell die OpenSSH-certificaten ondersteunt, moet u de Azure CLI nog steeds gebruiken met de SSH-extensie om tijdelijke SSH-certificaten en eventueel een configuratiebestand op te halen. Vervolgens kunt u het configuratiebestand gebruiken met uw SSH-client.

  • TCP-connectiviteit van de client naar het openbare of privé-IP-adres van de VIRTUELE machine. (ProxyCommand of SSH doorsturen naar een computer met connectiviteit werkt ook.)

Belangrijk

SSH-clients op basis van PuTTY ondersteunen nu OpenSSH-certificaten en kunnen worden gebruikt om u aan te melden met verificatie op basis van Microsoft Entra OpenSSH-certificaten.

Microsoft Entra-aanmelding inschakelen voor een Virtuele Linux-machine in Azure

Als u Microsoft Entra-aanmelding wilt gebruiken voor een Virtuele Linux-machine in Azure, moet u eerst de microsoft Entra-aanmeldingsoptie voor uw Linux-VM inschakelen. Vervolgens configureert u Azure-roltoewijzingen voor gebruikers die gemachtigd zijn om zich aan te melden bij de VIRTUELE machine. Ten slotte gebruikt u de SSH-client die OpenSSH ondersteunt, zoals de Azure CLI of Azure Cloud Shell, om SSH te gebruiken in uw Linux-VM.

Er zijn twee manieren om microsoft Entra-aanmelding in te schakelen voor uw Linux-VM:

  • De Azure-portal-ervaring bij het maken van een Virtuele Linux-machine
  • De Azure Cloud Shell-ervaring wanneer u een Virtuele Linux-machine maakt of een bestaande vm gebruikt

Azure Portal

U kunt microsoft Entra-aanmelding inschakelen voor een van de ondersteunde Linux-distributies met behulp van Azure Portal.

Als u bijvoorbeeld een VM voor langetermijnondersteuning (LTS) voor Ubuntu Server 18.04 in Azure wilt maken met microsoft Entra-aanmelding:

  1. Meld u aan bij Azure Portal met behulp van een account dat toegang heeft tot het maken van VM's en selecteer vervolgens + Een resource maken.
  2. Selecteer Maken onder Ubuntu Server 18.04 LTS in de weergave Populair .
  3. Op het tabblad Beheer :
    1. Schakel het selectievakje Aanmelden met Microsoft Entra-id in.
    2. Zorg ervoor dat het selectievakje Door het systeem toegewezen beheerde identiteit is ingeschakeld.
  4. Doorloop de rest van de ervaring van het maken van een virtuele machine. U moet een beheerdersaccount maken met een gebruikersnaam en wachtwoord of openbare SSH-sleutel.

Azure Cloud Shell

Azure Cloud Shell is een gratis interactieve shell waarmee u de stappen in dit artikel kunt uitvoeren. Er zijn vooraf algemene Azure-hulpprogramma's geïnstalleerd en geconfigureerd in Cloud Shell die u kunt gebruiken bij uw account. Selecteer de knop Kopiëren om de code te kopiëren, plak deze in Cloud Shell en druk op Enter om de code uit te voeren.

U kunt Cloud Shell op verschillende manieren openen:

  • Selecteer Nu proberen in de rechterbovenhoek van een codeblok.
  • Open Cloud Shell in uw browser.
  • Klik op de knop Cloud Shell in het menu in de hoek rechtsboven in de Azure Portal.

Als u ervoor kiest om azure CLI lokaal te installeren en te gebruiken, moet u voor dit artikel versie 2.22.1 of hoger gebruiken. Voer az --version uit om de versie te bekijken. Als u uw CLI wilt installeren of upgraden, raadpleegt u De Azure CLI installeren.

  1. Maak een bronnengroep met de opdracht az group create.
  2. Maak een VM door az vm create uit te voeren. Gebruik een ondersteunde distributie in een ondersteunde regio.
  3. Installeer de microsoft Entra-aanmeldings-VM-extensie met behulp van az vm extension set.

In het volgende voorbeeld wordt een virtuele machine geïmplementeerd en vervolgens de extensie geïnstalleerd om aanmelding bij Microsoft Entra in te schakelen voor een Virtuele Linux-machine. VM-extensies zijn kleine toepassingen die configuratie- en automatiseringstaken na de implementatie bieden op virtuele Azure-machines. Pas het voorbeeld zo nodig aan om uw testvereisten te ondersteunen.

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

Het maken van de VM en de ondersteunende resources duurt enkele minuten.

De AADSSHLoginForLinux-extensie kan worden geïnstalleerd op een bestaande (ondersteunde distributie) Linux-VM met een actieve VM-agent om Microsoft Entra-verificatie in te schakelen. Als u deze extensie implementeert op een eerder gemaakte VM, moet aan de VM ten minste 1 GB geheugen zijn toegewezen of mislukt de installatie.

De provisioningState waarde wordt Succeeded weergegeven wanneer de extensie is geïnstalleerd op de virtuele machine. De VM moet een actieve VM-agent hebben om de extensie te installeren.

Roltoewijzingen configureren voor de VM

Nu u de virtuele machine hebt gemaakt, moet u een van de volgende Azure-rollen toewijzen om te bepalen wie zich kan aanmelden bij de virtuele machine. Als u deze rollen wilt toewijzen, moet u de rol Data Access van de virtuele machine hebben Beheer istrator of een rol die de Microsoft.Authorization/roleAssignments/write actie omvat, zoals de rol Op rollen gebaseerd toegangsbeheer Beheer istrator. Als u echter een andere rol gebruikt dan Data Access voor virtuele machines Beheer istrator, raden we u aan een voorwaarde toe te voegen om de machtiging voor het maken van roltoewijzingen te verminderen.

  • Aanmelding voor virtuele machine Beheer istrator: gebruikers die deze rol hebben toegewezen, kunnen zich aanmelden bij een virtuele Azure-machine met beheerdersbevoegdheden.
  • Gebruikersaanmelding voor virtuele machine: gebruikers waaraan deze rol is toegewezen, kunnen zich aanmelden bij een virtuele Azure-machine met normale gebruikersbevoegdheden.

Als u een gebruiker wilt toestaan zich aan te melden bij een virtuele machine via SSH, moet u de rol Virtual Machine Beheer istrator Login of Virtual Machine User Login toewijzen aan de resourcegroep die de virtuele machine en het bijbehorende virtuele netwerk, de netwerkinterface, het openbare IP-adres of de load balancer-resources bevat.

Een Azure-gebruiker met de rol Eigenaar of Inzender die is toegewezen voor een virtuele machine, heeft niet automatisch bevoegdheden voor microsoft Entra-aanmelding bij de virtuele machine via SSH. Er is een opzettelijke (en gecontroleerde) scheiding tussen de set personen die virtuele machines beheren en de set personen die toegang hebben tot virtuele machines.

Er zijn twee manieren om roltoewijzingen voor een VM te configureren:

  • Ervaring met Azure Portal
  • Ervaring met Azure Cloud Shell

Notitie

De gebruikersrollen dataActions van de virtuele machine Beheer istrator en gebruikersaanmelding van virtuele machines worden gebruikt en kunnen worden toegewezen aan de beheergroep, het abonnement, de resourcegroep of het resourcebereik. U wordt aangeraden de rollen toe te wijzen op het niveau van de beheergroep, het abonnement of de resourcegroep en niet op het niveau van de afzonderlijke VM. Met deze procedure voorkomt u het risico dat de limiet voor Azure-roltoewijzingen per abonnement wordt bereikt.

Azure Portal

Roltoewijzingen configureren voor uw Linux-VM's met Microsoft Entra ID:

  1. Selecteer voor Brongroep de brongroep die de VM en het bijbehorende virtuele netwerk, de netwerkinterface, het openbare IP-adres of de bron voor de load balancer bevat.

  2. Klik op Toegangsbeheer (IAM) .

  3. Klik op Toevoegen>Roltoewijzing toevoegen om het deelvenster Roltoewijzing toevoegen te openen.

  4. Wijs de volgende rol toe. Raadpleeg Azure-rollen toewijzen met de Azure Portal voor informatie over het toewijzen van rollen.

    Instelling Weergegeven als
    Role Aanmelding van Virtual Machine-beheerder of Aanmelding van Virtual Machine-gebruiker
    Toegang toewijzen aan Gebruiker, groep, service-principal of beheerde identiteit

    Schermopname van de pagina voor het toevoegen van een roltoewijzing.

Na enkele ogenblikken wordt de rol in het geselecteerde bereik toegewezen aan de beveiligings-principal.

Azure Cloud Shell

In het volgende voorbeeld wordt az role assignment create gebruikt om de aanmeldingsrol Virtual Machine-beheerder toe te wijzen aan de VM voor uw huidige Azure-gebruiker. U verkrijgt de gebruikersnaam van uw huidige Azure-account met az account show en u stelt het bereik in op de VM die u in een vorige stap hebt gemaakt met az vm show.

U kunt het bereik ook toewijzen op het niveau van een brongroep of abonnement. Normale Azure RBAC-overnamemachtigingen zijn van toepassing.

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

Notitie

Als uw Microsoft Entra-domein en aanmeldingsgebruikersnaamdomein niet overeenkomen, moet u de object-id van uw gebruikersaccount opgeven met behulp --assignee-object-idvan, niet alleen de gebruikersnaam voor --assignee. U kunt de object-id voor uw gebruikersaccount verkrijgen met az ad user list.

Zie Stappen voor het toewijzen van een Azure-rol voor meer informatie over het gebruik van Azure RBAC voor het beheren van de toegang tot uw Azure-abonnementsresources.

De SSH-extensie voor de Azure CLI installeren

Als u Azure Cloud Shell gebruikt, is er geen andere installatie nodig omdat zowel de minimaal vereiste versie van de Azure CLI als de SSH-extensie voor de Azure CLI al zijn opgenomen in de Cloud Shell-omgeving.

Voer de volgende opdracht uit om de SSH-extensie voor de Azure CLI toe te voegen:

az extension add --name ssh

De minimale versie die is vereist voor de extensie is 0.1.4. Controleer de geïnstalleerde versie met behulp van de volgende opdracht:

az extension show --name ssh

Beleidsregels voor voorwaardelijke toegang afdwingen

U kunt beleidsregels voor voorwaardelijke toegang afdwingen die zijn ingeschakeld met Microsoft Entra-aanmelding, zoals:

  • Meervoudige verificatie vereisen.
  • Vereisen dat een compatibel of hybride apparaat van Microsoft Entra is gekoppeld voor het apparaat waarop de SSH-client wordt uitgevoerd.
  • Controleren op risico's voordat u toegang tot Linux-VM's in Azure autoriseert.

De toepassing die wordt weergegeven in het beleid voor voorwaardelijke toegang, wordt aanmelding van Azure Linux-VM's genoemd.

Notitie

Het afdwingen van beleid voor voorwaardelijke toegang waarvoor apparaatnaleving of hybride Deelname van Microsoft Entra is vereist op het apparaat waarop de SSH-client wordt uitgevoerd, werkt alleen met de Azure CLI die wordt uitgevoerd in Windows en macOS. Dit wordt niet ondersteund wanneer u de Azure CLI in Linux of Azure Cloud Shell gebruikt.

Ontbrekende toepassing

Als de aanmeldingstoepassing voor virtuele Linux-machines in Azure ontbreekt in voorwaardelijke toegang, controleert u of de toepassing zich niet in de tenant bevindt:

  1. Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een cloudtoepassing Beheer istrator.
  2. Blader naar Bedrijfstoepassingen voor identiteitstoepassingen>>.
  3. Verwijder de filters om alle toepassingen te zien en zoek naar virtuele machine. Als u de aanmelding voor virtuele Microsoft Azure Linux-machines niet ziet, ontbreekt de service-principal in de tenant.

Meld u aan met behulp van een Microsoft Entra-gebruikersaccount naar SSH op de Virtuele Linux-machine

Aanmelden met behulp van de Azure CLI

Voer az login in. Met deze opdracht opent u een browservenster waarin u zich kunt aanmelden met uw Microsoft Entra-account.

az login 

Voer vervolgens az ssh vm uit. In het volgende voorbeeld wordt automatisch het juiste IP-adres voor de VIRTUELE machine omgezet.

az ssh vm -n myVM -g AzureADLinuxVM

Als u hierom wordt gevraagd, voert u uw Microsoft Entra-aanmeldingsreferenties in op de aanmeldingspagina, voert u meervoudige verificatie uit en/of voldoet u aan apparaatcontroles. U wordt alleen gevraagd als u de Azure CLI-sessie bent die nog niet voldoet aan de vereiste criteria voor voorwaardelijke toegang. Sluit het browservenster, ga terug naar de SSH-prompt en u wordt automatisch verbonden met de virtuele machine.

U bent nu aangemeld bij de virtuele Linux-machine met de rolmachtigingen die zijn toegewezen, zoals VM-gebruiker of VM-Beheer istrator. Als uw gebruikersaccount is toegewezen aan de virtuele machine Beheer istrator-aanmeldingsrol, kunt u sudo gebruiken om opdrachten uit te voeren waarvoor hoofdbevoegdheden zijn vereist.

Aanmelden met behulp van Azure Cloud Shell

U kunt Azure Cloud Shell gebruiken om verbinding te maken met VM's zonder dat u iets lokaal op uw clientcomputer hoeft te installeren. Start Cloud Shell door het shell-pictogram in de rechterbovenhoek van Azure Portal te selecteren.

Cloud Shell maakt automatisch verbinding met een sessie in de context van de aangemelde gebruiker. Voer nu opnieuw uit az login en doorloop de interactieve aanmeldingsstroom:

az login

Vervolgens kunt u de normale az ssh vm opdrachten gebruiken om verbinding te maken met behulp van de naam en resourcegroep of het IP-adres van de virtuele machine:

az ssh vm -n myVM -g AzureADLinuxVM

Notitie

Het afdwingen van beleid voor voorwaardelijke toegang waarvoor apparaatnaleving of hybride Deelname van Microsoft Entra is vereist, wordt niet ondersteund wanneer u Azure Cloud Shell gebruikt.

Meld u aan met behulp van de Microsoft Entra-service-principal naar SSH op de Linux-VM

De Azure CLI biedt ondersteuning voor verificatie met een service-principal in plaats van een gebruikersaccount. Omdat service-principals niet zijn gekoppeld aan een bepaalde gebruiker, kunnen klanten deze gebruiken voor SSH in een VIRTUELE machine om automatiseringsscenario's te ondersteunen die ze mogelijk hebben. Aan de service-principal moet Beheer istrator- of VM-gebruikersrechten zijn toegewezen. Wijs machtigingen toe op abonnements- of resourcegroepniveau.

In het volgende voorbeeld worden vm-Beheer istratorrechten toegewezen aan de service-principal op het niveau van de resourcegroep. Vervang de tijdelijke aanduidingen voor de id van het service-principal-object, de abonnements-id en de naam van de resourcegroep.

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

Gebruik het volgende voorbeeld om te verifiëren bij de Azure CLI met behulp van de service-principal. Zie het artikel Aanmelden bij de Azure CLI met een service-principal voor meer informatie.

az login --service-principal -u <sp-app-id> -p <password-or-cert> --tenant <tenant-id>

Wanneer verificatie met een service-principal is voltooid, gebruikt u de normale Azure CLI SSH-opdrachten om verbinding te maken met de VM:

az ssh vm -n myVM -g AzureADLinuxVM

De SSH-configuratie exporteren voor gebruik met SSH-clients die OpenSSH ondersteunen

Aanmelden bij Azure Linux-VM's met Microsoft Entra ID ondersteunt het exporteren van het OpenSSH-certificaat en de configuratie. Dat betekent dat u SSH-clients kunt gebruiken die ondersteuning bieden voor OpenSSH-certificaten om u aan te melden via Microsoft Entra ID. In het volgende voorbeeld wordt de configuratie geëxporteerd voor alle IP-adressen die zijn toegewezen aan de virtuele machine:

az ssh config --file ~/.ssh/config -n myVM -g AzureADLinuxVM

U kunt de configuratie ook exporteren door alleen het IP-adres op te geven. Vervang het IP-adres in het volgende voorbeeld door het openbare of persoonlijke IP-adres voor uw virtuele machine. (U moet uw eigen connectiviteit gebruiken voor privé-IP-adressen.) Voer az ssh config -h voor hulp bij deze opdracht in.

az ssh config --file ~/.ssh/config --ip 10.11.123.456

Vervolgens kunt u verbinding maken met de virtuele machine via normaal OpenSSH-gebruik. Verbinding maken kan worden uitgevoerd via elke SSH-client die gebruikmaakt van OpenSSH.

Sudo uitvoeren met Microsoft Entra-aanmelding

Nadat gebruikers aan wie de rol VAN VM Beheer istrator is toegewezen, SSH hebben toegewezen aan een Linux-VM, kunnen ze sudo uitvoeren zonder andere interactie- of verificatievereiste. Gebruikers aan wie de gebruikersrol VM-gebruiker is toegewezen, kunnen sudo niet uitvoeren.

Verbinding maken naar VM's in virtuele-machineschaalsets

Virtuele-machineschaalsets worden ondersteund, maar de stappen verschillen enigszins voor het inschakelen en maken van verbinding met VM's in een virtuele-machineschaalset:

  1. Maak een virtuele-machineschaalset of kies er een die al bestaat. Schakel een door het systeem toegewezen beheerde identiteit in voor uw virtuele-machineschaalset:

    az vmss identity assign --name myVMSS --resource-group AzureADLinuxVM
    
  2. Installeer de Microsoft Entra-extensie op uw virtuele-machineschaalset:

    az vmss extension set --publisher Microsoft.Azure.ActiveDirectory --name AADSSHLoginForLinux --resource-group AzureADLinuxVM --vmss-name myVMSS
    

Virtuele-machineschaalsets hebben meestal geen openbare IP-adressen. U moet verbinding met hen hebben vanaf een andere computer die hun virtuele Azure-netwerk kan bereiken. In dit voorbeeld ziet u hoe u het privé-IP-adres van een virtuele machine in een virtuele-machineschaalset gebruikt om verbinding te maken vanaf een machine in hetzelfde virtuele netwerk:

az ssh vm --ip 10.11.123.456

Notitie

U kunt de IP-adressen van de virtuele-machineschaalset-VM niet automatisch bepalen met behulp van de --resource-group en --name switches.

Migreren van de vorige (preview)-versie

Als u de vorige versie van Microsoft Entra-aanmelding voor Linux gebruikt die is gebaseerd op de apparaatcodestroom, voert u de volgende stappen uit met behulp van de Azure CLI:

  1. Verwijder de AADLoginForLinux-extensie op de VM:

    az vm extension delete -g MyResourceGroup --vm-name MyVm -n AADLoginForLinux
    

    Notitie

    Het verwijderen van de extensie kan mislukken als er momenteel Microsoft Entra-gebruikers zijn aangemeld op de virtuele machine. Zorg ervoor dat alle gebruikers eerst zijn afgemeld.

  2. Door het systeem toegewezen beheerde identiteit inschakelen op uw VIRTUELE machine:

    az vm identity assign -g myResourceGroup -n myVm
    
  3. Installeer de extensie AADSSHLoginForLinux op de VM:

    az vm extension set \
        --publisher Microsoft.Azure.ActiveDirectory \
        --name AADSSHLoginForLinux \
        --resource-group myResourceGroup \
        --vm-name myVM
    

Gebruik Azure Policy om te voldoen aan normen en naleving te beoordelen

Azure Policy gebruiken om:

  • Zorg ervoor dat Microsoft Entra-aanmelding is ingeschakeld voor uw nieuwe en bestaande virtuele Linux-machines.
  • De naleving van uw omgeving op schaal te beoordelen op een dashboard voor naleving.

Met deze mogelijkheid kunt u veel niveaus voor afdwingen gebruiken. U kunt nieuwe en bestaande Linux-VM's markeren in uw omgeving waarvoor aanmelding bij Microsoft Entra niet is ingeschakeld. U kunt Azure Policy ook gebruiken om de Microsoft Entra-extensie te implementeren op nieuwe Linux-VM's waarvoor microsoft Entra-aanmelding niet is ingeschakeld, en bestaande Linux-VM's op dezelfde standaard te herstellen.

Naast deze mogelijkheden kunt u Azure Policy gebruiken om Linux-VM's te detecteren en te markeren die niet-goedgekeurde lokale accounts hebben gemaakt op hun computers. Raadpleeg Azure Policy voor meer informatie.

Problemen met aanmelden oplossen

Gebruik de volgende secties om veelvoorkomende fouten te corrigeren die kunnen optreden wanneer u SSH probeert te gebruiken met Microsoft Entra-referenties.

Kan token niet ophalen uit de lokale cache

Als u een bericht krijgt dat het token niet kan worden opgehaald uit de lokale cache, moet u opnieuw worden uitgevoerd az login en een interactieve aanmeldingsstroom doorlopen. Bekijk de sectie over aanmelden met behulp van Azure Cloud Shell.

Toegang geweigerd: Azure-rol niet toegewezen

Als er een fout 'Azure-rol niet toegewezen' wordt weergegeven op uw SSH-prompt, controleert u of u Azure RBAC-beleid hebt geconfigureerd voor de VIRTUELE machine die de gebruiker de aanmeldingsrol Virtual Machine Beheer istrator of de gebruikersaanmeldingsrol van de virtuele machine verleent. Als u problemen ondervindt met Azure-roltoewijzingen, raadpleegt u het artikel Problemen met Azure RBAC oplossen.

Problemen met het verwijderen van de oude extensie (AADLoginForLinux)

Als de verwijderingsscripts mislukken, kan de extensie vastlopen in een overgangsstatus. Als dit gebeurt, kan de extensie pakketten achterlaten die moeten worden verwijderd tijdens het verwijderen. In dergelijke gevallen is het beter om de oude pakketten handmatig te verwijderen en vervolgens de az vm extension delete opdracht uit te voeren.

Oude pakketten verwijderen:

  1. Meld u aan als een lokale gebruiker met beheerdersbevoegdheden.
  2. Zorg ervoor dat er geen microsoft Entra-gebruikers zijn aangemeld. Roep de who -u opdracht aan om te zien wie is aangemeld. sudo kill <pid> Gebruik vervolgens voor alle sessieprocessen die door de vorige opdracht zijn gerapporteerd.
  3. Uitvoeren sudo apt remove --purge aadlogin (Ubuntu/Debian), sudo yum remove aadlogin (RHEL of CentOS) of sudo zypper remove aadlogin (openSUSE of SLES).
  4. Als de opdracht mislukt, probeert u de hulpprogramma's op laag niveau waarvoor scripts zijn uitgeschakeld:
    1. Voer voor Ubuntu/Debian de opdracht uit sudo dpkg --purge aadlogin. Als het script nog steeds mislukt, verwijdert u het bestand en probeert u het /var/lib/dpkg/info/aadlogin.prerm opnieuw.
    2. Voer voor alles anders uit rpm -e --noscripts aadogin.
  5. Herhaal stap 3-4 voor pakket aadlogin-selinux.

Extensie-installatiefouten

De installatie van de AADSSHLoginForLinux VM-extensie op bestaande computers kan mislukken met een van de volgende bekende foutcodes.

Niet-nul afsluitcode 22

Als u afsluitcode 22 krijgt, wordt de status van de VM-extensie AADSSHLoginForLinux weergegeven als Overgang in de portal.

Deze fout treedt op omdat een door het systeem toegewezen beheerde identiteit is vereist.

De oplossing is het volgende:

  1. Verwijder de mislukte extensie.
  2. Schakel een door het systeem toegewezen beheerde identiteit in op de Azure-VM.
  3. Voer de opdracht voor de installatie van de extensie opnieuw uit.

Niet-nul afsluitcode 23

Als u afsluitcode 23 krijgt, wordt de status van de AADSSHLoginForLinux VM-extensie weergegeven als Overgang in de portal.

Deze fout treedt op wanneer de oudere AADLoginForLinux VM-extensie nog steeds is geïnstalleerd.

De oplossing is het verwijderen van de oudere AADLoginForLinux VM-extensie van de VM. De status van de nieuwe AADSSHLoginForLinux VM-extensie wordt vervolgens gewijzigd in Inrichten geslaagd in de portal.

Installatiefouten bij het gebruik van een HTTP-proxy

De extensie heeft een HTTP-verbinding nodig om pakketten te installeren en te controleren of er een systeemidentiteit bestaat. Deze wordt uitgevoerd in de context van walinuxagent.service en vereist een wijziging om de agent op de hoogte te stellen van de proxy-instellingen. Open /lib/systemd/system/walinuxagent.service het bestand op de doelcomputer en voeg de volgende regel toe na [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"

Start de agent opnieuw op (sudo systemctl restart walinuxagent). Probeer het nu opnieuw.

De opdracht az ssh vm mislukt met KeyError access_token

Als de az ssh vm opdracht mislukt, gebruikt u een verouderde versie van de Azure CLI-client.

De oplossing is om de Azure CLI-client te upgraden naar versie 2.21.0 of hoger.

SSH-verbinding is gesloten

Nadat een gebruiker zich heeft aangemeld met behulp vanaz login, maakt u verbinding met de VIRTUELE machine az ssh vm -ip <address> of az ssh vm --name <vm_name> -g <resource_group> mislukt deze mogelijk met 'Verbinding maken ion gesloten door <ip_address> poort 22'.

Een oorzaak voor deze fout is dat de gebruiker niet is toegewezen aan de virtuele machine Beheer istratoraanmelding of gebruikersaanmeldingsrol van virtuele machine binnen het bereik van deze VM. In dat geval is het de oplossing om de gebruiker toe te voegen aan een van deze Azure RBAC-rollen binnen het bereik van deze VM.

Deze fout kan ook optreden als de gebruiker een vereiste Azure RBAC-rol heeft, maar de door het systeem toegewezen beheerde identiteit is uitgeschakeld op de VIRTUELE machine. Voer in dat geval de volgende acties uit:

  1. Schakel de door het systeem toegewezen beheerde identiteit in op de virtuele machine.
  2. Wacht enkele minuten door voordat de gebruiker verbinding probeert te maken met behulp van az ssh vm --ip <ip_address>.

Verbinding maken ieproblemen met virtuele-machineschaalsets

VM-verbindingen met virtuele-machineschaalsets kunnen mislukken als op de exemplaren van de schaalset een oud model wordt uitgevoerd.

Het upgraden van schaalsetexemplaren naar het nieuwste model kan het probleem oplossen, met name als er geen upgrade is uitgevoerd sinds de Microsoft Entra-aanmeldingsextensie is geïnstalleerd. Wanneer u een exemplaar bijwerkt, wordt een standaardschaalsetconfiguratie toegepast op het afzonderlijke exemplaar.

AllowGroups- of DenyGroups-instructies in sshd_config ervoor zorgen dat de eerste aanmelding mislukt voor Microsoft Entra-gebruikers

Als sshd_config een AllowGroups of DenyGroups meer instructies bevat, mislukt de eerste aanmelding voor Microsoft Entra-gebruikers. Als de instructie is toegevoegd nadat gebruikers al een geslaagde aanmelding hebben gehad, kunnen ze zich aanmelden.

Eén oplossing is het verwijderen AllowGroups en DenyGroups verklaringen uit sshd_config.

Een andere oplossing is om naar DenyGroups een match user sectie in sshd_config te gaanAllowGroups. Zorg ervoor dat de overeenkomstsjabloon Microsoft Entra-gebruikers uitsluit.

Machtiging geweigerd krijgen bij het maken van verbinding vanuit Azure Shell met Linux Red Hat/Oracle/CentOS 7.X VM.

De Versie van de OpenSSH-server in de doel-VM 7.4 is te oud. Versie die niet compatibel is met OpenSSH-clientversie 8.8. Raadpleeg RSA SHA256-certificaten werken niet meer voor meer informatie.

Tijdelijke oplossing:

  • "PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com" Optie toevoegen in de az ssh vm opdracht.
az ssh vm -n myVM -g MyResourceGroup -- -A -o "PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com"
  • De optie "PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com" toevoegen in de /home/<user>/.ssh/config file.

Voeg het "PubkeyAcceptedKeyTypes +ssh-rsa-cert-v01@openssh.com" toe aan het configuratiebestand van de client.

Host *
PubkeyAcceptedKeyTypes +ssh-rsa-cert-v01@openssh.com

Volgende stappen