Aanmelden bij een virtuele Linux-machine in Azure met behulp van Microsoft Entra ID en OpenSSH
Om de beveiliging van virtuele Linux-machines (VM's) of Linux-servers met Azure Arc 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 u zich zorgen maken over de verspreiding van verouderde openbare SSH-sleutels die ongeautoriseerde 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 factorverificatie te vereisen of om te vereisen dat uw clientapparaat wordt beheerd (bijvoorbeeld compatibel of aan Microsoft Entra toegevoegd) voordat u deze kunt gebruiken om te SSH'en naar 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 |
---|---|
AlmaLinux | AlmaLinux 8, AlmaLinux 9 |
Azure Linux (voorheen bekend als Common Base Linux Mariner) | CBL-Mariner 2.0, Azure Linux 3.0 |
Debian | Debian 9, Debian 10, Debian 11, Debian 12 |
openSUSE | openSUSE Leap 42.3, openSUSE Leap 15.1 tot 15.5, openSUSE Leap 15.6+ |
Oracle | Oracle Linux 8, Oracle Linux 9 |
RedHat Enterprise Linux (RHEL) | RHEL 7.4 tot RHEL 7.9, RHEL 8.3+, RHEL 9.0+ |
Rocky | Rocky 8, Rocky 9 |
SUSE Linux Enterprise Server (SLES) | SLES 12, SLES 15.1 tot 15.5, SLES 15.6+ |
Ubuntu | Ubuntu 16.04 naar Ubuntu 24.04 |
Notitie
SUSE heeft een belangrijke wijziging aangebracht in versie 15.6 die niet compatibel is met de oudere versies. Omdat de Microsoft Entra-aanmeldings-VM-extensie altijd het meest recente pakket installeert, werkt dit niet op oudere SUSE-versies. U kunt de aadsshlogin-pakketten installeren vanuit packages.microsoft.com voor oudere SUSE-versies. Nadat u de repository hebt toegevoegd, kunt u deze handmatig installeren met het volgende commando: sudo zypper install aadsshlogin=1.0.027980001
.
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-processen.
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 PAM-gebaseerde verificatiestromen. -
https://pasff.usgovcloudapi.net
: voor de 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 PAM-gebaseerde authenticatiestromen. -
https://pas.chinacloudapi.cn
: voor Azure RBAC-werkstromen.
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
enaadsshlogin-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:
- 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.
- Selecteer Maken bij Ubuntu Server 18.04 LTS in de Populaire weergave .
- Op het tabblad Beheer :
- Schakel het selectievakje Aanmelden met Microsoft Entra-id in.
- Zorg ervoor dat het selectievakje Door het systeem toegewezen beheerde identiteit is ingeschakeld.
- 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 de 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.
- Maak een bronnengroep met de opdracht az group create.
- Maak een VM door az vm create uit te voeren. Gebruik een ondersteunde distributie in een ondersteunde regio.
- 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 waarde van provisioningState
wordt Succeeded
weergegeven wanneer de extensie succesvol is geïnstalleerd op de virtuele machine. De VM moet een actieve VM-agent hebben om de extensie te installeren.
Microsoft Entra-aanmelding inschakelen voor een Linux-servers met Azure Arc
U vindt de relevante informatie over SSH-toegang tot servers met Azure Arc
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 Gegevenstoegangsbeheerder voor virtuele machines hebben of een rol die de Microsoft.Authorization/roleAssignments/write
actie bevat, zoals de rol Op rollen gebaseerd toegangsbeheerbeheerder . Als u echter een andere rol gebruikt dan De beheerder van gegevenstoegang voor virtuele machines, raden we u aan een voorwaarde toe te voegen om de machtiging voor het maken van roltoewijzingen te verminderen.
- Aanmelding van de beheerder van virtuele machine: 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 aanmeldingsrol van de virtuele machinebeheerder of de gebruikersaanmelding van virtuele machines 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 aanmeldrollen voor beheerder van de virtuele machine en gebruiker van de virtuele machine gebruiken dataActions
en kunnen worden toegewezen op het niveau van 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:
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.
Klik op Toegangsbeheer (IAM) .
Klik op Toevoegen>Roltoewijzing toevoegen om het deelvenster Roltoewijzing toevoegen te openen.
Wijs de volgende rol toe. Raadpleeg Azure-rollen toewijzen met de Azure Portal voor informatie over het toewijzen van rollen.
Instelling Waarde Rol Aanmelding van Virtual Machine-beheerder of Aanmelding van Virtual Machine-gebruiker Toegang toewijzen aan Gebruiker, groep, service-principal of beheerde identiteit
Na enkele ogenblikken wordt de rol in het geselecteerde bereik toegewezen aan de beveiligingsprincipal.
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 van --assignee-object-id
, 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
Voorwaardelijke toegangsbeleid 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 in het beleid voor voorwaardelijke toegang wordt weergegeven, heet Azure Linux VM Sign-In.
Notitie
Het afdwingen van beleid voor voorwaardelijke toegang dat apparaatnaleving of Microsoft Entra hybride deelname vereist op het apparaat waarop de SSH-client wordt uitgevoerd, werkt alleen met de Azure CLI die wordt uitgevoerd op 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:
- Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een cloudtoepassingsbeheerder.
- Blader naar Identiteit>Applicaties>Bedrijfstoepassingen.
- Verwijder de filters om alle toepassingen te zien en zoek naar virtuele machine. Als u het Microsoft Azure Linux Virtual Machine-aanmeldingsscherm niet ziet, ontbreekt de service-principal in de tenant.
Meld u aan met behulp van een Microsoft Entra-gebruikersaccount om in te loggen op de Linux-VM via SSH.
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 opgelost.
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 uw Azure CLI-sessie 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-beheerder. Als aan uw gebruikersaccount de aanmeldingsrol Virtual Machine Administrator is toegewezen, 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 een beleid voor voorwaardelijke toegang dat apparaatnaleving of een Microsoft Entra hybride koppeling vereist, wordt niet ondersteund wanneer u Azure Cloud Shell gebruikt.
Log in met behulp van de Microsoft Entra-service-principal om in te loggen via 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 moeten VM-beheerder- of VM-gebruikersrechten zijn toegewezen. Wijs machtigingen toe op abonnements- of resourcegroepniveau.
In het volgende voorbeeld worden VM-beheerdersrechten toegewezen aan de service-principal op het niveau van de resourcegroep. Vervang de tijdelijke aanduidingen voor de service-principal-object-id, 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 authenticeren met de Azure CLI via 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 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-beheerder is toegewezen, via SSH succesvol in een Linux-VM hebben ingelogd, kunnen ze sudo uitvoeren zonder dat verdere interactie of verificatie vereist is. Gebruikers aan wie de gebruikersrol VM-gebruiker is toegewezen, kunnen sudo niet uitvoeren.
Verbinding maken met 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:
Maak een virtuele machineschaalset of kies een bestaande. Schakel een door het systeem toegewezen beheerde identiteit in voor uw schaalset voor virtuele machines.
az vmss identity assign --name myVMSS --resource-group AzureADLinuxVM
Installeer de Microsoft Entra-extensie op uw schaalset voor virtuele machines.
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:
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.
Door het systeem toegewezen beheerde identiteit inschakelen op uw VIRTUELE machine:
az vm identity assign -g myResourceGroup -n myVm
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.
- Beoordeel de naleving van uw omgeving op schaal met een nalevingsdashboard.
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 az login
opnieuw uitvoeren en een interactieve aanmeldingsprocedure volgen. 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 Administrator 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:
- Meld u aan als een lokale gebruiker met beheerdersbevoegdheden.
- 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. - Uitvoeren
sudo apt remove --purge aadlogin
(Ubuntu/Debian),sudo yum remove aadlogin
(RHEL) ofsudo zypper remove aadlogin
(openSUSE of SLES). - Als de opdracht mislukt, probeert u de hulpprogramma's op laag niveau waarvoor scripts zijn uitgeschakeld:
- Voer voor Ubuntu/Debian de opdracht uit
sudo dpkg --purge aadlogin
. Als het nog steeds mislukt door het script, verwijder dan het/var/lib/dpkg/info/aadlogin.prerm
bestand en probeer het opnieuw. - Voer voor al het andere
rpm -e --noscripts aadogin
uit.
- Voer voor Ubuntu/Debian de opdracht uit
- 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:
- Verwijder de mislukte extensie.
- Schakel een door het systeem toegewezen beheerde identiteit in op de Azure-VM.
- 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 verandert vervolgens naar Voorziening 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 met behulp van az login
succesvol heeft aangemeld, kan de verbinding met de virtuele machine via az ssh vm -ip <address>
of az ssh vm --name <vm_name> -g <resource_group>
mogelijk mislukken met de melding 'Verbinding gesloten door <ip_address> poort 22'.
Een van de oorzaken van deze fout is dat de gebruiker niet is toegewezen aan de gebruikersrol Virtual Machine Administrator of Virtual Machine User Login 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:
- Schakel de door het systeem toegewezen beheerde identiteit in op de virtuele machine.
- Wacht enkele minuten door voordat de gebruiker verbinding probeert te maken met behulp van
az ssh vm --ip <ip_address>
.
Verbindingsproblemen 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. Het bijwerken van een exemplaar past een standaardschaalsetconfiguratie toe op het afzonderlijke exemplaar.
AllowGroups- of DenyGroups-instructies in sshd_config zorgen ervoor dat de eerste aanmelding voor Microsoft Entra-gebruikers mislukt.
Als sshd_config of AllowGroups
of DenyGroups
instructies bevat, mislukt de eerste aanmelding voor Microsoft Entra-gebruikers. Als de instructie is toegevoegd nadat gebruikers al succesvol hebben ingelogd, zijn ze in staat om in te loggen.
Eén oplossing is het verwijderen AllowGroups
en DenyGroups
verklaringen uit sshd_config.
Een andere oplossing is om AllowGroups
en DenyGroups
naar een match user
-sectie in sshd_config te verplaatsen. Zorg ervoor dat de overeenkomstsjabloon Microsoft Entra-gebruikers uitsluit.
Machtiging geweigerd bij het maken van verbinding vanuit Azure Shell met Linux Red Hat/Oracle 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 deaz 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