Logga in på en virtuell Linux-dator i Azure med hjälp av Microsoft Entra ID och OpenSSH
För att förbättra säkerheten för virtuella Linux-datorer i Azure kan du integrera med Microsoft Entra-autentisering. Nu kan du använda Microsoft Entra-ID som en grundläggande autentiseringsplattform och en certifikatutfärdare till SSH till en virtuell Linux-dator med hjälp av Microsoft Entra-ID och OpenSSH-certifikatbaserad autentisering. Med den här funktionen kan organisationer hantera åtkomst till virtuella datorer med rollbaserad åtkomstkontroll i Azure (RBAC) och principer för villkorsstyrd åtkomst.
Den här artikeln visar hur du skapar och konfigurerar en virtuell Linux-dator och loggar in med Microsoft Entra-ID med hjälp av OpenSSH-certifikatbaserad autentisering.
Det finns många säkerhetsfördelar med att använda Microsoft Entra-ID med OpenSSH-certifikatbaserad autentisering för att logga in på virtuella Linux-datorer i Azure. De omfattar:
- Använd dina Microsoft Entra-autentiseringsuppgifter för att logga in på virtuella Azure Linux-datorer.
- Hämta SSH-nyckelbaserad autentisering utan att behöva distribuera SSH-nycklar till användare eller etablera offentliga SSH-nycklar på alla virtuella Azure Linux-datorer som du distribuerar. Den här upplevelsen är mycket enklare än att behöva oroa sig för utbredning av inaktuella offentliga SSH-nycklar som kan orsaka obehörig åtkomst.
- Minska beroendet av lokala administratörskonton, stöld av autentiseringsuppgifter och svaga autentiseringsuppgifter.
- Skydda virtuella Linux-datorer genom att konfigurera lösenordskomplexitet och lösenordslivslängdsprinciper för Microsoft Entra-ID.
- Med RBAC anger du vem som kan logga in på en virtuell dator som en vanlig användare eller med administratörsbehörighet. När användarna ansluter till ditt team kan du uppdatera Azure RBAC-principen för den virtuella datorn så att den beviljar åtkomst efter behov. När anställda lämnar organisationen och deras användarkonton inaktiveras eller tas bort från Microsoft Entra-ID har de inte längre åtkomst till dina resurser.
- Med villkorlig åtkomst konfigurerar du principer för att kräva multifaktorautentisering eller för att kräva att klientenheten hanteras (till exempel kompatibel eller Microsoft Entra-hybridansluten) innan du kan använda den som SSH till virtuella Linux-datorer.
- Använd Azures distributions- och granskningsprinciper för att kräva Microsoft Entra-inloggning för virtuella Linux-datorer och flagga icke godkända lokala konton.
Logga in på virtuella Linux-datorer med Microsoft Entra ID fungerar för kunder som använder Active Directory Federation Services (AD FS).
Linux-distributioner och Azure-regioner som stöds
Följande Linux-distributioner stöds för närvarande för distributioner i en region som stöds:
Fördelning | Version |
---|---|
Common Base 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+ |
Orakel | Oracle Linux 8, Oracle Linux 9 |
RedHat Enterprise Linux (RHEL) | RHEL 7.4 till RHEL 7.9, RHEL 8.3+, RHEL 9.0+ |
Stenig | Stenig 8, Stenig 9 |
SUSE Linux Enterprise Server (SLES) | SLES 12, SLES 15.1+ |
Ubuntu | Ubuntu 16.04 till Ubuntu 24.04 |
Följande Azure-regioner stöds för närvarande för den här funktionen:
- Azure Global
- Azure Government
- Microsoft Azure drivs av 21Vianet
Användning av SSH-tillägget för Azure CLI på AKS-kluster (Azure Kubernetes Service) stöds inte. Mer information finns i Supportprinciper för AKS.
Om du väljer att installera och använda Azure CLI lokalt måste det vara version 2.22.1 eller senare. Kör az --version
för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.
Not
Den här funktionen är också tillgänglig för Azure Arc-aktiverade servrar.
Uppfylla kraven för inloggning med Microsoft Entra-ID med openSSH-certifikatbaserad autentisering
Om du vill aktivera Microsoft Entra-inloggning via SSH-certifikatbaserad autentisering för virtuella Linux-datorer i Azure måste du uppfylla följande krav för nätverk, virtuell dator och klient (SSH-klient).
Nätverk
Nätverkskonfiguration för virtuella datorer måste tillåta utgående åtkomst till följande slutpunkter via TCP-port 443.
Azure Global:
https://packages.microsoft.com
: För paketinstallation och uppgraderingar.http://169.254.169.254
: Azure Instance Metadata Service-slutpunkt.https://login.microsoftonline.com
: För PAM-baserade autentiseringsflöden (pluggbara autentiseringsmoduler).https://pas.windows.net
: För Azure RBAC-flöden.
Azure Government:
https://packages.microsoft.com
: För paketinstallation och uppgraderingar.http://169.254.169.254
: Azure Instance Metadata Service-slutpunkt.https://login.microsoftonline.us
: För PAM-baserade autentiseringsflöden.https://pasff.usgovcloudapi.net
: För Azure RBAC-flöden.
Microsoft Azure drivs av 21Vianet:
https://packages.microsoft.com
: För paketinstallation och uppgraderingar.http://169.254.169.254
: Azure Instance Metadata Service-slutpunkt.https://login.chinacloudapi.cn
: För PAM-baserade autentiseringsflöden.https://pas.chinacloudapi.cn
: För Azure RBAC-flöden.
Virtuell dator
Kontrollera att den virtuella datorn har konfigurerats med följande funktioner:
- Systemtilldelad hanterad identitet. Det här alternativet väljs automatiskt när du använder Azure Portal för att skapa virtuella datorer och väljer inloggningsalternativet Microsoft Entra. Du kan också aktivera systemtilldelad hanterad identitet på en ny eller befintlig virtuell dator med hjälp av Azure CLI.
aadsshlogin
ochaadsshlogin-selinux
(efter behov). Dessa paket installeras med vm-tillägget AADSSHLoginForLinux. Tillägget installeras när du använder Azure Portal eller Azure CLI för att skapa virtuella datorer och aktivera Microsoft Entra-inloggning (fliken Hantering).
Klient
Se till att klienten uppfyller följande krav:
SSH-klientstöd för OpenSSH-baserade certifikat för autentisering. Du kan använda Azure CLI (2.21.1 eller senare) med OpenSSH (ingår i Windows 10 version 1803 eller senare) eller Azure Cloud Shell för att uppfylla detta krav.
SSH-tillägget för Azure CLI. Du kan installera det här tillägget med hjälp
az extension add --name ssh
av . Du behöver inte installera det här tillägget när du använder Azure Cloud Shell, eftersom det är förinstallerat.Om du använder någon annan SSH-klient än Azure CLI eller Azure Cloud Shell som stöder OpenSSH-certifikat måste du fortfarande använda Azure CLI med SSH-tillägget för att hämta tillfälliga SSH-certifikat och eventuellt en konfigurationsfil. Du kan sedan använda konfigurationsfilen med din SSH-klient.
TCP-anslutning från klienten till den virtuella datorns offentliga eller privata IP-adress. (ProxyCommand- eller SSH-vidarebefordran till en dator med anslutning fungerar också.)
Viktig
SSH-klienter baserade på PuTTY stöder nu OpenSSH-certifikat och kan användas för att logga in med Microsoft Entra OpenSSH-certifikatbaserad autentisering.
Aktivera Microsoft Entra-inloggning för en virtuell Linux-dator i Azure
Om du vill använda Microsoft Entra-inloggning för en virtuell Linux-dator i Azure måste du först aktivera inloggningsalternativet Microsoft Entra för din virtuella Linux-dator. Sedan konfigurerar du Azure-rolltilldelningar för användare som har behörighet att logga in på den virtuella datorn. Slutligen använder du SSH-klienten som stöder OpenSSH, till exempel Azure CLI eller Azure Cloud Shell, för att SSH till din virtuella Linux-dator.
Det finns två sätt att aktivera Microsoft Entra-inloggning för din virtuella Linux-dator:
- Den Azure Portal upplevelsen när du skapar en virtuell Linux-dator
- Azure Cloud Shell-upplevelsen när du skapar en virtuell Linux-dator eller använder en befintlig
Azure Portal
Du kan aktivera Microsoft Entra-inloggning för någon av de Linux-distributioner som stöds med hjälp av Azure Portal.
Om du till exempel vill skapa en virtuell Ubuntu Server 18.04-dator med långsiktig support (LTS) i Azure med Microsoft Entra-inloggning:
- Logga in på Azure Portal med hjälp av ett konto som har åtkomst till att skapa virtuella datorer och välj sedan + Skapa en resurs.
- Välj Skapa under Ubuntu Server 18.04 LTS i vyn Populärt .
- På fliken Hantering :
- Markera kryssrutan Logga in med Microsoft Entra-ID .
- Kontrollera att kryssrutan Systemtilldelad hanterad identitet är markerad.
- Gå igenom resten av upplevelsen av att skapa en virtuell dator. Du måste skapa ett administratörskonto med användarnamn och lösenord eller offentlig SSH-nyckel.
Azure Cloud Shell
Azure Cloud Shell är ett kostnadsfritt interaktivt gränssnitt som du kan använda för att köra stegen i den här artikeln. Vanliga Azure-verktyg är förinstallerade och konfigurerade i Cloud Shell så att du kan använda med ditt konto. Välj bara knappen Kopiera för att kopiera koden, klistra in den i Cloud Shell och välj sedan returnyckeln för att köra den.
Det finns några sätt att öppna Cloud Shell:
- Välj Prova i det övre högra hörnet i ett kodblock.
- Öppna Cloud Shell i webbläsaren.
- Välj knappen Cloud Shell på menyn i det övre högra hörnet av Azure Portal.
Om du väljer att installera och använda Azure CLI lokalt kräver den här artikeln att du använder version 2.22.1 eller senare. Kör az --version
för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.
- Skapa en resursgrupp genom att köra az group create.
- Skapa en virtuell dator genom att köra az vm create. Använd en distribution som stöds i en region som stöds.
- Installera tillägget för microsoft entra-inloggnings-VM med hjälp av az vm extension set.
I följande exempel distribueras en virtuell dator och tillägget installeras för att aktivera Microsoft Entra-inloggning för en virtuell Linux-dator. VM-tillägg är små program som tillhandahåller konfigurations- och automatiseringsuppgifter efter distributionen på virtuella Azure-datorer. Anpassa exemplet efter behov för att stödja dina testkrav.
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
Det tar några minuter att skapa den virtuella datorn och stödresurser.
AADSSHLoginForLinux-tillägget kan installeras på en befintlig (stöds distribution) virtuell Linux-dator med en vm-agent som körs för att aktivera Microsoft Entra-autentisering. Om du distribuerar det här tillägget till en tidigare skapad virtuell dator måste den virtuella datorn ha minst 1 GB minne allokerat, annars misslyckas installationen.
Värdet provisioningState
Succeeded
för visas när tillägget har installerats på den virtuella datorn. Den virtuella datorn måste ha en vm-agent som körs för att installera tillägget.
Konfigurera rolltilldelningar för den virtuella datorn
Nu när du har skapat den virtuella datorn måste du tilldela någon av följande Azure-roller för att avgöra vem som kan logga in på den virtuella datorn. Om du vill tilldela dessa roller måste du ha rollen Administratör för dataåtkomst för virtuell dator eller någon roll som innehåller Microsoft.Authorization/roleAssignments/write
åtgärden, till exempel rollen Rollbaserad administratör för åtkomstkontroll . Men om du använder en annan roll än Virtual Machine Data Access Administrator rekommenderar vi att du lägger till ett villkor för att minska behörigheten att skapa rolltilldelningar.
- Inloggning med virtuell datoradministratör: Användare som har tilldelats den här rollen kan logga in på en virtuell Azure-dator med administratörsbehörighet.
- Användarinloggning för virtuell dator: Användare som har tilldelats den här rollen kan logga in på en virtuell Azure-dator med regelbunden användarbehörighet.
Om du vill tillåta att en användare loggar in på en virtuell dator via SSH måste du tilldela rollen Virtuell datoradministratörsinloggning eller Användarinloggning för virtuell dator på resursgruppen som innehåller den virtuella datorn och dess associerade virtuella nätverk, nätverksgränssnitt, offentliga IP-adress eller lastbalanserare.
En Azure-användare som har rollen Ägare eller Deltagare tilldelad för en virtuell dator har inte automatiskt behörighet att Microsoft Entra loggar in på den virtuella datorn via SSH. Det finns en avsiktlig (och granskad) separation mellan den uppsättning personer som styr virtuella datorer och den uppsättning personer som har åtkomst till virtuella datorer.
Det finns två sätt att konfigurera rolltilldelningar för en virtuell dator:
- Azure Portal upplevelse
- Azure Cloud Shell-upplevelse
Not
Användarinloggningsroller för virtuella datorer och virtuella datorer använder dataActions
och kan tilldelas i hanteringsgruppen, prenumerationen, resursgruppen eller resursomfånget. Vi rekommenderar att du tilldelar rollerna på hanteringsgrupps-, prenumerations- eller resursgruppsnivå och inte på den enskilda virtuella datorns nivå. Den här metoden undviker risken att nå gränsen för Azure-rolltilldelningar per prenumeration.
Azure Portal
Så här konfigurerar du rolltilldelningar för dina Microsoft Entra ID-aktiverade virtuella Linux-datorer:
För Resursgrupp väljer du den resursgrupp som innehåller den virtuella datorn och dess associerade virtuella nätverk, nätverksgränssnitt, offentliga IP-adress eller lastbalanseringsresurs.
Välj Åtkomstkontroll (IAM).
Välj Lägg till>rolltilldelning för att öppna sidan Lägg till rolltilldelning.
Tilldela följande roll. Detaljerade steg finns i Tilldela Azure-roller med hjälp av Azure Portal.
Inställning Värde Roll Inloggning för virtuell datoradministratör eller användarinloggning för virtuell dator Tilldela åtkomst till Användare, grupp, tjänstens huvudnamn eller hanterad identitet
Efter en liten stund tilldelas säkerhetsobjektet rollen i det valda omfånget.
Azure Cloud Shell
I följande exempel används az role assignment create för att tilldela inloggningsrollen virtuell datoradministratör till den virtuella datorn för din aktuella Azure-användare. Du får användarnamnet för ditt aktuella Azure-konto med hjälp av az account show, och du anger omfånget till den virtuella dator som skapades i ett tidigare steg med hjälp av az vm show.
Du kan också tilldela omfånget på resursgrupps- eller prenumerationsnivå. Normala Azure RBAC-arvsbehörigheter gäller.
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
Not
Om din Domän för Microsoft Entra och inloggningsanvändardomänen inte matchar måste du ange objekt-ID:t för ditt användarkonto med hjälp --assignee-object-id
av , inte bara användarnamnet för --assignee
. Du kan hämta objekt-ID:t för ditt användarkonto med hjälp av az ad user list.
Mer information om hur du använder Azure RBAC för att hantera åtkomst till dina Azure-prenumerationsresurser finns i Steg för att tilldela en Azure-roll.
Installera SSH-tillägget för Azure CLI
Om du använder Azure Cloud Shell behövs ingen annan konfiguration eftersom både den lägsta nödvändiga versionen av Azure CLI och SSH-tillägget för Azure CLI redan ingår i Cloud Shell-miljön.
Kör följande kommando för att lägga till SSH-tillägget för Azure CLI:
az extension add --name ssh
Den lägsta version som krävs för tillägget är 0.1.4. Kontrollera den installerade versionen med hjälp av följande kommando:
az extension show --name ssh
Tillämpa principer för villkorsstyrd åtkomst
Du kan tillämpa principer för villkorlig åtkomst som är aktiverade med Microsoft Entra-inloggning, till exempel:
- Kräver multifaktorautentisering.
- Kräver en kompatibel eller Microsoft Entra-hybrid ansluten enhet för den enhet som kör SSH-klienten.
- Söka efter risker innan du auktoriserar åtkomst till virtuella Linux-datorer i Azure.
Programmet som visas i principen för villkorsstyrd åtkomst kallas azure linux VM-inloggning.
Not
Principframtvingande för villkorsstyrd åtkomst som kräver enhetsefterlevnad eller Microsoft Entra-hybridanslutning på den enhet som kör SSH-klienten fungerar endast med Azure CLI som körs i Windows och macOS. Det stöds inte när du använder Azure CLI på Linux eller Azure Cloud Shell.
Program saknas
Om inloggningsprogrammet för den virtuella Azure Linux-datorn saknas i villkorlig åtkomst kontrollerar du att programmet inte finns i klientorganisationen:
- Logga in på administrationscentret för Microsoft Entra som minst molnprogramadministratör.
- Bläddra till Identity>Applications Enterprise-program.>
- Ta bort filtren för att se alla program och sök efter virtuell dator. Om du inte ser microsoft Azure Linux Virtual Machine-inloggning som ett resultat saknas tjänstens huvudnamn från klientorganisationen.
Logga in med hjälp av ett Microsoft Entra-användarkonto till SSH på den virtuella Linux-datorn
Logga in med hjälp av Azure CLI
Ange az login
. Det här kommandot öppnar ett webbläsarfönster där du kan logga in med ditt Microsoft Entra-konto.
az login
Ange az ssh vm
sedan . I följande exempel matchas automatiskt lämplig IP-adress för den virtuella datorn.
az ssh vm -n myVM -g AzureADLinuxVM
Om du uppmanas anger du dina Inloggningsuppgifter för Microsoft Entra på inloggningssidan, utför multifaktorautentisering och/eller uppfyller enhetskontroller. Du uppmanas endast om du är Azure CLI-sessionen inte redan uppfyller de villkor som krävs för villkorsstyrd åtkomst. Stäng webbläsarfönstret, gå tillbaka till SSH-prompten så ansluts du automatiskt till den virtuella datorn.
Nu är du inloggad på den virtuella Linux-datorn med rollbehörigheterna som tilldelade, till exempel VM-användare eller VM-administratör. Om ditt användarkonto har tilldelats rollen Administratör för virtuell dator kan du använda sudo för att köra kommandon som kräver rotbehörighet.
Logga in med hjälp av Azure Cloud Shell
Du kan använda Azure Cloud Shell för att ansluta till virtuella datorer utan att behöva installera något lokalt på klientdatorn. Starta Cloud Shell genom att välja skalikonen i det övre högra hörnet av Azure Portal.
Cloud Shell ansluter automatiskt till en session i kontexten för den inloggade användaren. az login
Kör nu igen och gå igenom det interaktiva inloggningsflödet:
az login
Sedan kan du använda de vanliga az ssh vm
kommandona för att ansluta med hjälp av namnet och resursgruppen eller IP-adressen för den virtuella datorn:
az ssh vm -n myVM -g AzureADLinuxVM
Not
Principframtvingande för villkorsstyrd åtkomst som kräver enhetsefterlevnad eller Microsoft Entra-hybridanslutning stöds inte när du använder Azure Cloud Shell.
Logga in med microsoft entra-tjänstens huvudnamn till SSH på den virtuella Linux-datorn
Azure CLI stöder autentisering med ett huvudnamn för tjänsten i stället för ett användarkonto. Eftersom tjänstens huvudnamn inte är knutna till någon viss användare kan kunderna använda dem för att SSH till en virtuell dator för att stödja eventuella automatiseringsscenarier som de kan ha. Tjänstens huvudnamn måste ha tilldelats användarrättigheter för virtuella datorer eller virtuella datorer. Tilldela behörigheter på prenumerations- eller resursgruppsnivå.
I följande exempel tilldelas administratörsrättigheter för virtuella datorer till tjänstens huvudnamn på resursgruppsnivå. Ersätt platshållarna för objekt-ID för tjänstens huvudnamn, prenumerations-ID och resursgruppsnamn.
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>"
Använd följande exempel för att autentisera till Azure CLI med hjälp av tjänstens huvudnamn. Mer information finns i artikeln Logga in på Azure CLI med tjänstens huvudnamn.
az login --service-principal -u <sp-app-id> -p <password-or-cert> --tenant <tenant-id>
När autentiseringen med tjänstens huvudnamn är klar använder du de normala Azure CLI SSH-kommandona för att ansluta till den virtuella datorn:
az ssh vm -n myVM -g AzureADLinuxVM
Exportera SSH-konfigurationen för användning med SSH-klienter som stöder OpenSSH
Logga in på virtuella Azure Linux-datorer med Microsoft Entra ID stöder export av OpenSSH-certifikatet och konfigurationen. Det innebär att du kan använda alla SSH-klienter som stöder OpenSSH-baserade certifikat för att logga in via Microsoft Entra-ID. I följande exempel exporteras konfigurationen för alla IP-adresser som tilldelats till den virtuella datorn:
az ssh config --file ~/.ssh/config -n myVM -g AzureADLinuxVM
Du kan också exportera konfigurationen genom att bara ange IP-adressen. Ersätt IP-adressen i följande exempel med den offentliga eller privata IP-adressen för den virtuella datorn. (Du måste ta med din egen anslutning för privata IP-adresser.) Ange az ssh config -h
för hjälp med det här kommandot.
az ssh config --file ~/.ssh/config --ip 10.11.123.456
Du kan sedan ansluta till den virtuella datorn via normal OpenSSH-användning. Anslutningen kan göras via valfri SSH-klient som använder OpenSSH.
Kör sudo med Microsoft Entra-inloggning
När användare som har tilldelats rollen VM-administratör har SSH till en virtuell Linux-dator kan de köra sudo utan något annat interaktions- eller autentiseringskrav. Användare som har tilldelats rollen VM-användare kan inte köra sudo.
Ansluta till virtuella datorer i VM-skalningsuppsättningar
Vm-skalningsuppsättningar stöds, men stegen skiljer sig något åt för att aktivera och ansluta till virtuella datorer i en VM-skalningsuppsättning:
Skapa en VM-skalningsuppsättning eller välj en som redan finns. Aktivera en systemtilldelad hanterad identitet för vm-skalningsuppsättningen:
az vmss identity assign --name myVMSS --resource-group AzureADLinuxVM
Installera Microsoft Entra-tillägget på vm-skalningsuppsättningen:
az vmss extension set --publisher Microsoft.Azure.ActiveDirectory --name AADSSHLoginForLinux --resource-group AzureADLinuxVM --vmss-name myVMSS
Vm-skalningsuppsättningar har vanligtvis inte offentliga IP-adresser. Du måste ha anslutning till dem från en annan dator som kan nå deras virtuella Azure-nätverk. Det här exemplet visar hur du använder den privata IP-adressen för en virtuell dator i en VM-skalningsuppsättning för att ansluta från en dator i samma virtuella nätverk:
az ssh vm --ip 10.11.123.456
Not
Du kan inte automatiskt fastställa vm-skalningsuppsättningens IP-adresser för virtuella datorer med hjälp --resource-group
av växlarna och --name
.
Migrera från den tidigare versionen (förhandsversion)
Om du använder den tidigare versionen av Microsoft Entra-inloggning för Linux som baserades på enhetskodflöde utför du följande steg med hjälp av Azure CLI:
Avinstallera AADLoginForLinux-tillägget på den virtuella datorn:
az vm extension delete -g MyResourceGroup --vm-name MyVm -n AADLoginForLinux
Not
Avinstallationen av tillägget kan misslyckas om det finns några Microsoft Entra-användare som för närvarande är inloggade på den virtuella datorn. Kontrollera att alla användare loggas ut först.
Aktivera systemtilldelad hanterad identitet på den virtuella datorn:
az vm identity assign -g myResourceGroup -n myVm
Installera AADSSHLoginForLinux-tillägget på den virtuella datorn:
az vm extension set \ --publisher Microsoft.Azure.ActiveDirectory \ --name AADSSHLoginForLinux \ --resource-group myResourceGroup \ --vm-name myVM
Använda Azure Policy för att uppfylla standarder och utvärdera efterlevnad
Använd Azure Policy för att:
- Kontrollera att Microsoft Entra-inloggning är aktiverat för dina nya och befintliga virtuella Linux-datorer.
- Utvärdera efterlevnaden av din miljö i stor skala på en instrumentpanel för efterlevnad.
Med den här funktionen kan du använda många nivåer av tillämpning. Du kan flagga nya och befintliga virtuella Linux-datorer i din miljö som inte har Microsoft Entra-inloggning aktiverat. Du kan också använda Azure Policy för att distribuera Microsoft Entra-tillägget på nya virtuella Linux-datorer som inte har Microsoft Entra-inloggning aktiverat, samt åtgärda befintliga virtuella Linux-datorer till samma standard.
Utöver dessa funktioner kan du använda Azure Policy för att identifiera och flagga virtuella Linux-datorer som har icke godkända lokala konton som skapats på deras datorer. Mer information finns i Azure Policy.
Felsöka inloggningsproblem
Använd följande avsnitt för att korrigera vanliga fel som kan inträffa när du försöker SSH med Microsoft Entra-autentiseringsuppgifter.
Det gick inte att hämta token från lokal cache
Om du får ett meddelande om att token inte kunde hämtas från den lokala cachen måste du köra az login
igen och gå igenom ett interaktivt inloggningsflöde. Läs avsnittet om att logga in med hjälp av Azure Cloud Shell.
Åtkomst nekad: Azure-rollen har inte tilldelats
Om du ser felet "Azure-rollen har inte tilldelats" i SSH-prompten kontrollerar du att du har konfigurerat Azure RBAC-principer för den virtuella datorn som ger användaren antingen rollen Virtuell datoradministratörsinloggning eller inloggningsrollen för virtuell datoranvändare. Om du har problem med Azure-rolltilldelningar kan du läsa artikeln Felsöka Azure RBAC.
Problem med att ta bort det gamla tillägget (AADLoginForLinux)
Om avinstallationsskripten misslyckas kan tillägget fastna i ett övergångstillstånd. När detta händer kan tillägget lämna paket som ska avinstalleras under borttagningen. I sådana fall är det bättre att avinstallera de gamla paketen manuellt och sedan försöka köra az vm extension delete
kommandot.
Så här avinstallerar du gamla paket:
- Logga in som en lokal användare med administratörsbehörighet.
- Kontrollera att det inte finns några inloggade Microsoft Entra-användare.
who -u
Anropa kommandot för att se vem som är inloggad. Användsudo kill <pid>
sedan för alla sessionsprocesser som föregående kommando rapporterade. - Kör
sudo apt remove --purge aadlogin
(Ubuntu/Debian),sudo yum remove aadlogin
(RHEL) ellersudo zypper remove aadlogin
(openSUSE eller SLES). - Om kommandot misslyckas kan du prova verktyg på låg nivå med skript inaktiverade:
- För Ubuntu/Debian kör du
sudo dpkg --purge aadlogin
. Om det fortfarande misslyckas på grund av skriptet tar du bort/var/lib/dpkg/info/aadlogin.prerm
filen och försöker igen. - För allt annat kör du
rpm -e --noscripts aadogin
.
- För Ubuntu/Debian kör du
- Upprepa steg 3–4 för paketet
aadlogin-selinux
.
Installationsfel för tillägg
Installationen av det virtuella AADSSHLoginForLinux-tillägget till befintliga datorer kan misslyckas med någon av följande kända felkoder.
Slutkod 22 som inte är noll
Om du får slutkod 22 visas statusen för vm-tillägget AADSSHLoginForLinux som Övergång i portalen.
Det här felet inträffar eftersom en systemtilldelad hanterad identitet krävs.
Lösningen är att:
- Avinstallera det misslyckade tillägget.
- Aktivera en systemtilldelad hanterad identitet på den virtuella Azure-datorn.
- Kör installationskommandot för tillägget igen.
Slutkod 23 som inte är noll
Om du får slutkod 23 visas statusen för det virtuella datortillägget AADSSHLoginForLinux som Övergång i portalen.
Det här felet inträffar när det äldre AADLoginForLinux VM-tillägget fortfarande är installerat.
Lösningen är att avinstallera det äldre AADLoginForLinux VM-tillägget från den virtuella datorn. Statusen för det nya AADSSHLoginForLinux VM-tillägget ändras sedan till Etablering lyckades i portalen.
Installationsfel vid användning av en HTTP-proxy
Tillägget behöver en HTTP-anslutning för att installera paket och kontrollera om det finns en systemidentitet. Den körs i kontexten för walinuxagent.service
och kräver en ändring för att meddela agenten om proxyinställningarna. Öppna /lib/systemd/system/walinuxagent.service
filen på måldatorn och lägg till följande rad efter [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"
Starta om agenten (sudo systemctl restart walinuxagent
). Försök igen.
Kommandot az ssh vm misslyckas med KeyError access_token
Om kommandot az ssh vm
misslyckas använder du en inaktuell version av Azure CLI-klienten.
Lösningen är att uppgradera Azure CLI-klienten till version 2.21.0 eller senare.
SSH-anslutningen är stängd
När en användare har loggat in med hjälp az login
av kan anslutningen till den virtuella datorn via az ssh vm -ip <address>
eller az ssh vm --name <vm_name> -g <resource_group>
misslyckas med "Anslutningen stängs av <ip_address> port 22".
En orsak till det här felet är att användaren inte har tilldelats rollen Virtuell datoradministratörsinloggning eller Virtuell datoranvändarinloggning inom den här virtuella datorns omfång. I så fall är lösningen att lägga till användaren i en av dessa Azure RBAC-roller inom den här virtuella datorns omfång.
Det här felet kan också inträffa om användaren har en nödvändig Azure RBAC-roll, men den systemtilldelade hanterade identiteten har inaktiverats på den virtuella datorn. I så fall utför du följande åtgärder:
- Aktivera den systemtilldelade hanterade identiteten på den virtuella datorn.
- Tillåt flera minuter innan användaren försöker ansluta med hjälp
az ssh vm --ip <ip_address>
av .
Anslutningsproblem med VM-skalningsuppsättningar
VM-anslutningar med VM-skalningsuppsättningar kan misslyckas om skalningsuppsättningsinstanserna kör en gammal modell.
Att uppgradera skalningsuppsättningsinstanser till den senaste modellen kan lösa problemet, särskilt om en uppgradering inte har gjorts sedan Microsoft Entra-inloggningstillägget installerades. När du uppgraderar en instans tillämpas en standardkonfiguration för skalningsuppsättningar på den enskilda instansen.
AllowGroups- eller DenyGroups-instruktioner i sshd_config orsaka att den första inloggningen misslyckas för Microsoft Entra-användare
Om sshd_config innehåller antingen AllowGroups
eller DenyGroups
-instruktioner misslyckas den första inloggningen för Microsoft Entra-användare. Om instruktionen lades till efter att användarna redan har loggat in kan de logga in.
En lösning är att ta bort AllowGroups
och DenyGroups
instruktioner från sshd_config.
En annan lösning är att flytta AllowGroups
och DenyGroups
till ett match user
avsnitt i sshd_config. Kontrollera att matchningsmallen undantar Microsoft Entra-användare.
Får behörighet nekad när du försöker ansluta från Azure Shell till en virtuell Linux Red Hat/Oracle 7.X-dator.
OpenSSH-serverversionen i mål-VM 7.4 är för gammal. Versionen är inte kompatibel med OpenSSH-klientversion 8.8. Mer information finns i RSA SHA256-certifikat som inte längre fungerar.
Lösning:
- Lägger till alternativet
"PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com"
iaz ssh vm
kommandot .
az ssh vm -n myVM -g MyResourceGroup -- -A -o "PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com"
- Lägga till alternativet
"PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com"
i/home/<user>/.ssh/config file
.
"PubkeyAcceptedKeyTypes +ssh-rsa-cert-v01@openssh.com"
Lägg till i klientkonfigurationsfilen.
Host *
PubkeyAcceptedKeyTypes +ssh-rsa-cert-v01@openssh.com