Freigeben über


Anmelden bei einer Linux-VM in Azure mithilfe von Microsoft Entra ID und OpenSSH

Um die Sicherheit virtueller Azure Linux-Computer (VMs) oder Azure Arc-fähigen Linux-Servern zu verbessern, können Sie die Microsoft Entra-Authentifizierung integrieren. Sie können jetzt Microsoft Entra ID als zentrale Authentifizierungsplattform und Zertifizierungsstelle verwenden, um mithilfe von Microsoft Entra ID und der auf OpenSSH-Zertifikaten basierenden Authentifizierung eine SSH-Verbindung mit einer Linux-VM herzustellen. Mit dieser Funktion können Organisationen den Zugriff auf VMs mit der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC) von Azure und Richtlinien für bedingten Zugriff verwalten.

In diesem Artikel wird beschrieben, wie Sie eine Linux-VM erstellen und konfigurieren und sich mithilfe der auf OpenSSH-Zertifikaten basierenden Authentifizierung bei Microsoft Entra ID anmelden.

Die Verwendung von Microsoft Entra ID mit der zertifikatbasierten OpenSSH-Authentifizierung für die Anmeldung bei Linux-VMs in Azure bietet viele sicherheitsrelevante Vorteile. Dazu gehören:

  • Verwenden Sie Ihre Microsoft Entra-Anmeldeinformationen, um sich bei Linux-VMs in Azure anzumelden.
  • Richten Sie eine auf SSH-Schlüsseln basierende Authentifizierung ein, ohne SSH-Schlüssel an Benutzer verteilen oder öffentliche SSH-Schlüssel auf allen bereitgestellten Linux-VMs in Azure bereitstellen zu müssen. Das ist sehr viel einfacher, als sich Gedanken über verstreute und veraltete öffentliche SSH-Schlüssel machen zu müssen, die möglicherweise zu einem nicht autorisierten Zugriff führen.
  • Reduzieren Sie die Abhängigkeit von lokalen Administratorkonten, und vermeiden Sie schwache Anmeldeinformationen sowie den Diebstahl von Anmeldeinformationen.
  • Helfen Sie dabei, Linux-VMs abzusichern, indem Sie für Microsoft Entra ID Richtlinien zur Komplexität und Lebensdauer von Kennwörtern konfigurieren.
  • Geben Sie bei Nutzung von RBAC an, wer sich als regulärer Benutzer oder mit Administratorrechten bei einer VM anmelden kann. Wenn Benutzer Ihrem Team beitreten, können Sie die Azure RBAC-Richtlinie für die VM aktualisieren, um den Zugriff entsprechend zu erteilen. Wenn Mitarbeiter Ihre Organisation verlassen und ihre Benutzerkonten in Microsoft Entra ID deaktiviert oder entfernt werden, haben sie keinen Zugriff mehr auf Ihre Ressourcen.
  • Mit dem Feature „Bedingter Zugriff“ können Sie Richtlinien so konfigurieren, dass Multi-Faktor-Authentifizierung erforderlich ist oder dass das Clientgerät ein verwaltetes Gerät (z. B. ein konformes oder hybrides in Microsoft Entra eingebundenes Gerät) sein muss, bevor Sie damit eine SSH-Verbindung mit Linux-VMs herstellen können.
  • Erzwingen Sie mithilfe von Azure-Bereitstellungs- und Überwachungsrichtlinien die Microsoft Entra-Anmeldung für Linux-VMs, und erkennen Sie nicht genehmigte lokale Konten.

Die Anmeldung bei Linux-VMs über Microsoft Entra ID funktioniert auch bei Kunden, die mit Active Directory-Verbunddienste (AD FS) arbeiten.

Unterstützte Linux-Distributionen und Azure-Regionen

Die folgenden Linux-Distributionen werden derzeit für Bereitstellungen in einer unterstützten Region unterstützt:

Verteilung Version
AlmaLinux AlmaLinux 8, AlmaLinux 9
Azure Linux (früher bekannt 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 bis 15.5, openSUSE Leap 15.6+
Orakel Oracle Linux 8, Oracle Linux 9
Red Hat Enterprise Linux (RHEL) RHEL 7.4 bis RHEL 7.9 und ab RHEL 8.3+, RHEL 9.0+
Felsig Rocky 8, Rocky 9
SUSE Linux Enterprise Server (SLES) SLES 12, SLES 15.1 bis 15.5, SLES 15.6+
Ubuntu Ubuntu 16.04 bis Ubuntu 24.04

Hinweis

SUSE hat mit Version 15.6 eine bahnbrechende Änderung vorgenommen, die mit den älteren Versionen nicht kompatibel ist. Da die Microsoft Entra-Anmelde-VM-Erweiterung immer das neueste Paket installiert, funktioniert dies nicht bei älteren SUSE-Versionen. Sie können die aadsshlogin-Pakete von packages.microsoft.com für ältere SUSE-Versionen installieren. Nach dem Hinzufügen des Repos kann man diese mit diesem Befehl manuell installieren: sudo zypper install aadsshlogin=1.0.027980001.

Für diese Funktion werden derzeit die folgenden Azure-Regionen unterstützt:

  • Azure Global
  • Azure für Behörden
  • Microsoft Azure, betrieben von 21Vianet

Die SSH-Erweiterung für die Azure CLI in Azure Kubernetes Service-Clustern (AKS) wird nicht unterstützt. Weitere Informationen finden Sie unter Supportrichtlinien für AKS.

Wenn Sie die Azure CLI lokal installieren und einsetzen möchten, ist mindestens die Azure CLI-Version 2.22.1 erforderlich. Führen Sie az --version aus, um die Version zu ermitteln. Wenn Sie die Azure CLI installieren oder aktualisieren müssen, lesen Sie Installieren der Azure CLI.

Hinweis

Diese Funktionalität ist auch für Azure Arc-fähige Server verfügbar.

Erfüllen von Anforderungen für die Anmeldung mit Microsoft Entra ID mithilfe der auf OpenSSH-Zertifikaten basierenden Authentifizierung

Um die Microsoft Entra-Anmeldung mit auf OpenSSH-Zertifikaten basierender Authentifizierung für Linux-VMs in Azure zu aktivieren, müssen die folgenden Voraussetzungen für das Netzwerk, die VM und den Client (SSH-Client) erfüllt sein.

Netzwerk

Die Netzwerkkonfiguration der VM muss über TCP-Port 443 ausgehenden Zugriff auf die folgenden Endpunkte zulassen.

Azure Global:

  • https://packages.microsoft.com: für Paketinstallation und Upgrades.
  • http://169.254.169.254: Azure Instance Metadata Service-Endpunkt.
  • https://login.microsoftonline.com: für PAM-basierte Authentifizierungsflows (Pluggable Authentication Modules).
  • https://pas.windows.net: für Azure RBAC-Flows.

Azure Government:

  • https://packages.microsoft.com: für Paketinstallation und Upgrades.
  • http://169.254.169.254: Azure Instance Metadata Service-Endpunkt.
  • https://login.microsoftonline.us: für PAM-basierte Authentifizierungsflows.
  • https://pasff.usgovcloudapi.net: für Azure RBAC-Flows.

Microsoft Azure, betrieben von 21Vianet:

  • https://packages.microsoft.com: für Paketinstallation und Upgrades.
  • http://169.254.169.254: Azure Instance Metadata Service-Endpunkt.
  • https://login.chinacloudapi.cn: für PAM-basierte Authentifizierungsflows.
  • https://pas.chinacloudapi.cn: für Azure RBAC-Flows.

Virtueller Computer

Stellen Sie sicher, dass Ihre VM mit der folgenden Funktionalität konfiguriert ist:

  • Systemseitig zugewiesene verwaltete Identität. Diese Option wird automatisch ausgewählt, wenn Sie VMs im Azure-Portal erstellen und die Microsoft Entra-Anmeldeoption auswählen. Sie können die systemseitig zugewiesene verwaltete Identität auch mithilfe der Azure CLI auf einer neuen oder vorhandenen VM aktivieren.
  • aadsshlogin und aadsshlogin-selinux (sofern zutreffend). Diese Pakete werden mit der VM-Erweiterung AADSSHLoginForLinux installiert. Die Erweiterung wird installiert, wenn Sie das Azure-Portal oder die Azure CLI zum Erstellen von VMs verwenden und die Microsoft Entra-Anmeldung aktivieren (Registerkarte "Verwaltung ").

Kunde

Stellen Sie sicher, dass Ihr Client folgende Anforderungen erfüllt:

  • Der SSH-Client muss für die Authentifizierung OpenSSH-Zertifikate unterstützen. Zur Erfüllung dieser Anforderung können Sie die Azure CLI (ab 2.21.1) mit OpenSSH (enthalten in Windows 10 ab Version 1803) oder Azure Cloud Shell verwenden.

  • SSH-Erweiterung für die Azure CLI. Sie können diese Erweiterung mithilfe von az extension add --name ssh installieren. Sie müssen diese Erweiterung nicht installieren, wenn Sie Azure Cloud Shell verwenden, da sie bereits vorinstalliert ist.

    Wenn Sie einen anderen SSH-Client als die Azure CLI oder Azure Cloud Shell verwenden, der OpenSSH-Zertifikate unterstützt, müssen Sie weiterhin die Azure CLI mit der SSH-Erweiterung nutzen, um kurzlebige SSH-Zertifikate und optional eine Konfigurationsdatei abzurufen. Anschließend können Sie die Konfigurationsdatei mit Ihrem SSH-Client verwenden.

  • TCP-Konnektivität zwischen dem Client und entweder der öffentlichen oder der privaten IP-Adresse der VM. (ProxyCommand oder SSH-Weiterleitung an einen Computer mit Konnektivität funktioniert ebenfalls.)

Wichtig

Auf PuTTY basierende SSH-Clients unterstützen jetzt OpenSSH-Zertifikate und eignen sich für die Microsoft Entra-Anmeldung mit auf OpenSSH-Zertifikaten basierender Authentifizierung.

Aktivieren der Microsoft Entra-Anmeldung für eine Linux-VM in Azure

Für die Microsoft Entra-Anmeldung einer Linux-VM in Azure müssen Sie zuerst die Microsoft Entra-Anmeldeoption für Ihre Linux-VM aktivieren. Anschließend konfigurieren Sie die Zuweisung von Azure-Rollen an Benutzer, die autorisiert sind, sich bei der VM anzumelden. Schließlich stellen Sie mit dem OpenSSH unterstützenden SSH-Client, z. B. Azure CLI oder Azure Cloud Shell, eine SSH-Verbindung mit Ihrer Linux-VM her.

Es gibt zwei Möglichkeiten, wie Sie die Microsoft Entra-Anmeldung für die Linux-VM aktivieren können:

  • Im Azure-Portal beim Erstellen einer virtuellen Linux-VM
  • In der Azure-Cloud Shell-Umgebung, wenn Sie eine Linux-VM erstellen oder eine vorhandene einsetzen

Azure-Portal

Sie können die Microsoft Entra-Anmeldung für jede der unterstützten Linux-Distributionen über das Azure-Portal aktivieren.

So erstellen Sie beispielsweise in Azure eine VM mit Ubuntu Server 18.04 LTS (Long-Term Support) und Microsoft Entra-Anmeldung:

  1. Melden Sie sich beim Azure-Portal mit einem Konto an, das Zugriff auf das Erstellen von VMs hat, und wählen Sie dann +Erstellen einer Ressource aus.
  2. Wählen Sie unter Ubuntu Server 18.04 LTS in der Ansicht "Beliebt" die Option "Erstellen" aus.
  3. Auf der Registerkarte " Verwaltung ":
    1. Aktivieren Sie das Kontrollkästchen "Mit Microsoft Entra ID anmelden ".
    2. Stellen Sie sicher, dass das Kontrollkästchen "Vom System zugewiesene verwaltete Identität " aktiviert ist.
  4. Führen Sie die weiteren Schritte zum Erstellen eines virtuellen Computers aus. Sie müssen ein Administratorkonto mit Benutzernamen und Kennwort oder öffentlichem SSH-Schlüssel erstellen.

Azure Cloud Shell

Azure Cloud Shell ist eine kostenlose interaktive Shell, mit der Sie die Schritte in diesem Artikel ausführen können. Allgemeine Tools sind in Cloud Shell vorinstalliert und für die Verwendung mit Ihrem Konto konfiguriert. Wählen Sie einfach die Schaltfläche " Kopieren " aus, um den Code zu kopieren, fügen Sie ihn in Cloud Shell ein, und wählen Sie dann die EINGABETASTE aus, um ihn auszuführen.

Cloud Shell kann auf mehrere Arten geöffnet werden:

  • Wählen Sie "Testen" in der oberen rechten Ecke eines Codeblocks aus.
  • Öffnen Sie Cloud Shell in Ihrem Browser.
  • Wählen Sie im Menü rechts oben im Azure-Portal die Schaltfläche „Cloud Shell“ aus.

Wenn Sie die Azure CLI lokal installieren und verwenden möchten, müssen Sie für diesen Artikel mindestens die Azure CLI-Version 2.22.1 ausführen. Führen Sie az --version aus, um die Version zu ermitteln. Wenn Sie die Azure CLI installieren oder aktualisieren müssen, lesen Sie Installieren der Azure CLI.

  1. Erstellen Sie eine Ressourcengruppe, indem Sie az group create ausführen.
  2. Erstellen Sie einen virtuellen Computer, indem Sie az vm create ausführen. Verwenden Sie eine unterstützte Distribution in einer unterstützten Region.
  3. Installieren Sie die Microsoft Entra-Anmelde-VM-Erweiterung mithilfe von az vm extension set.

Im folgenden Beispiel wird eine VM bereitgestellt und dann die Erweiterung installiert, um die Microsoft Entra-Anmeldung für eine Linux-VM zu aktivieren. VM-Erweiterungen sind kleine Anwendungen, die Konfigurations- und Automatisierungsaufgaben auf Azure-VMs nach der Bereitstellung ermöglichen. Passen Sie das Beispiel nach Bedarf so an, dass Ihre Testanforderungen erfüllt werden.

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

Das Erstellen des virtuellen Computers und der unterstützenden Ressourcen dauert einige Minuten.

Die Erweiterung „AADSSHLoginForLinux“ kann auf einem vorhandenen virtuellen Linux-Computer (unterstützte Distribution), auf dem ein VM-Agent ausgeführt wird, installiert werden, um die Microsoft Entra Authentifizierung zu aktivieren. Wenn Sie diese Erweiterung auf einer bereits erstellten VM bereitstellen, muss dieser mindestens 1 GB Arbeitsspeicher zugeordnet sein, da die Installation andernfalls fehlschlägt.

provisioningState wird als Wert von Succeeded angezeigt, wenn die Erweiterung erfolgreich auf der VM installiert wurde. Der virtuelle Computer muss über einen ausgeführten VM-Agent verfügen, um die Erweiterung zu installieren.

Aktivieren der Microsoft Entra-Anmeldung für Azure Arc-fähige Linux-Server

Die relevanten Details zum SSH-Zugriff auf Azure Arc-fähige Server finden Sie

Konfigurieren der Rollenzuweisungen für den virtuellen Computer

Nach Erstellen der VM müssen Sie eine der folgenden Azure-Rollen zuweisen, um festzulegen, wer sich bei der VM anmelden kann. Um diese Rollen zuzuweisen, müssen Sie über die Rolle " Administrator für den Datenzugriff für virtuelle Computer " oder eine beliebige Rolle verfügen, die die Microsoft.Authorization/roleAssignments/write Aktion enthält, z. B. die Rolle " Rollenbasierte Zugriffssteuerungsadministrator" . Wenn Sie jedoch eine andere Rolle als der Data Access-Administrator für virtuelle Computer verwenden, empfehlen wir, eine Bedingung hinzuzufügen, um die Berechtigung zum Erstellen von Rollenzuweisungen zu verringern.

  • Administratoranmeldung für virtuelle Computer: Benutzer, denen diese Rolle zugewiesen ist, können sich mit Administratorrechten bei einem virtuellen Azure-Computer anmelden.
  • Benutzeranmeldung für virtuelle Computer: Benutzer, denen diese Rolle zugewiesen ist, können sich mit regulären Benutzerberechtigungen bei einem virtuellen Azure-Computer anmelden.

Damit sich ein Benutzer über SSH bei einer VM anmelden kann, müssen Sie der Ressourcengruppe mit der VM und den zugehörigen virtuellen Netzwerken, Netzwerkschnittstellen, öffentlichen IP-Adressen oder Lastenausgleichsressourcen die Rolle „Anmeldeinformationen des VM-Administrators“ oder „Anmeldeinformationen für VM-Benutzer“ zuweisen.

Ein Azure-Benutzer mit der Rolle „Besitzer“ oder „Mitwirkender“ für eine VM verfügt nicht automatisch über Berechtigungen zur Microsoft Entra-Anmeldung bei der VM über SSH. Es gibt eine beabsichtigte (und überwachte) Trennung zwischen der Gruppe von Personen, die VMs steuern, und der Gruppe von Personen, die auf VMs zugreifen können.

Es gibt zwei Möglichkeiten zum Konfigurieren von Rollenzuweisungen für eine VM:

  • Azure-Portal-Benutzeroberfläche
  • Mit der Azure Cloud Shell

Hinweis

Die Rollen „Anmeldeinformationen des VM-Administrators“ und „Anmeldeinformationen für VM-Benutzer“ verwenden dataActions und können im Verwaltungsgruppen-, Abonnement-, Ressourcengruppen- oder Ressourcenbereich zugewiesen werden. Es wird empfohlen, die Rollen auf der Ebene der Verwaltungsgruppe, des Abonnements oder der Ressourcengruppe zuzuweisen und nicht auf der Ebene einzelner VMs. Diese Vorgehensweise vermeidet das Risiko, das Limit der Azure-Rollenzuweisungen pro Abonnement zu erreichen.

Azure-Portal

So konfigurieren Sie Rollenzuweisungen für Microsoft Entra ID-fähige Linux-VMs:

  1. Wählen Sie für die Ressourcengruppe die Ressourcengruppe aus, die den virtuellen Computer und das zugehörige virtuelle Netzwerk, die Netzwerkschnittstelle, die öffentliche IP-Adresse oder die Lastenausgleichsressource enthält.

  2. Wählen Sie access control (IAM) aus.

  3. Wählen Sie "> aus, um die Seite "Rollenzuweisung hinzufügen" zu öffnen.

  4. Weisen Sie die folgende Rolle zu. Ausführliche Schritte finden Sie unter Zuweisen von Azure-Rollen mithilfe des Azure-Portals.

    Einstellung Wert
    Rolle Administratoranmeldung für virtuelle Computer oder Benutzeranmeldung für virtuelle Computer
    Zugriff zuweisen zu Benutzer, Gruppe, Dienstprinzipal oder verwaltete Identität

    Screenshot der Seite zum Hinzufügen einer Rollenzuweisung.

Nach einigen Augenblicken wird dem Sicherheitsprinzipal die Rolle für den Bereich zugewiesen.

Azure Cloud Shell

Im folgenden Beispiel wird az role assignment create verwendet, um der VM für Ihren aktuellen Azure-Benutzer die Administratoranmeldungsrolle des virtuellen Computers zuzuweisen. Sie erhalten den Benutzernamen Ihres aktuellen Azure-Kontos, indem Sie den Befehl az account show verwenden, und legen den Bereich auf den virtuellen Computer fest, der in einem vorherigen Schritt erstellt wurde, indem Sie az vm show verwenden.

Sie können den Geltungsbereich auch auf Ressourcengruppen- oder Abonnementebene zuweisen. Es gelten normale Azure RBAC-Vererbungsberechtigungen.

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

Hinweis

Wenn die Microsoft Entra-Domäne und die Domäne des Benutzeranmeldenamens nicht übereinstimmen, müssen Sie die Objekt-ID des Benutzerkontos mit --assignee-object-id angeben. Die Angabe des Benutzernamens für --assignee genügt nicht. Sie können die Objekt-ID für Ihr Benutzerkonto mit az ad user list abrufen.

Weitere Informationen zur Verwendung von Azure RBAC zum Verwalten des Zugriffs auf Ihre Azure-Abonnementressourcen finden Sie in den Schritten zum Zuweisen einer Azure-Rolle.

Installieren der SSH-Erweiterung für die Azure CLI

Wenn Sie Azure Cloud Shell verwenden, unterscheidet sich das Setup nicht, da sowohl die mindestens erforderliche Version der Azure CLI als auch die SSH-Erweiterung für die Azure CLI bereits in der Cloud Shell-Umgebung enthalten sind.

Führen Sie den folgenden Befehl aus, um die SSH-Erweiterung für die Azure CLI hinzuzufügen:

az extension add --name ssh

Für die Erweiterung ist mindestens Version 0.1.4 erforderlich. Überprüfen Sie die installierte Version mit dem folgenden Befehl:

az extension show --name ssh

Erzwingen von Richtlinien für bedingten Zugriff

Sie können Richtlinien für bedingten Zugriff erzwingen, die mit der Microsoft Entra-Anmeldung aktiviert werden, z. B.:

  • Erzwingen der Multi-Faktor-Authentifizierung
  • Anfordern eines konformen oder hybriden in Microsoft Entra eingebundenen Geräts für das Gerät, auf dem der SSH-Client ausgeführt wird.
  • Überprüfen auf Risiken, bevor Sie den Zugriff auf Linux-VMs in Azure autorisieren

Die Anwendung, die in der Richtlinie für bedingten Zugriff angezeigt wird, heißt Azure Linux VM-Anmeldung.

Hinweis

Die Erzwingung von Richtlinien für bedingten Zugriff, die die Konformität des Geräts oder eine hybride Microsoft Entra-Einbindung auf dem Gerät erfordern, auf dem der SSH-Client ausgeführt wird, funktioniert nur mit der unter Windows und macOS ausgeführten Azure CLI. Sie wird nicht unterstützt, wenn Sie die Azure CLI unter Linux oder Azure Cloud Shell verwenden.

Fehlende Anwendung

Wenn in „Bedingter Zugriff“ die Anwendung „Azure Linux VM Sign-In“ fehlt, stellen Sie sicher, dass sich die Anwendung nicht im Mandanten befindet:

  1. Melden Sie sich mindestens als Cloudanwendungsadministrator beim Microsoft Entra Admin Center an.
  2. Navigieren Sie zu Entra ID>Enterprise-Apps.
  3. Entfernen Sie die Filter, um alle Anwendungen anzuzeigen, und suchen Sie nach einem virtuellen Computer. Wenn keine Microsoft Azure Linux VM-Anmeldung angezeigt wird, fehlt das Dienstprinzipal im Mandanten.

Anmelden mit einem Microsoft Entra-Benutzerkonto, um per SSH auf die Linux-VM zuzugreifen

Anmelden mithilfe der Azure CLI

Geben Sie az login ein. Dieser Befehl öffnet ein Browserfenster, in dem Sie sich mit Ihrem Microsoft Entra-Konto anmelden können.

az login 

Geben Sie dann az ssh vm ein. Im folgenden Beispiel wird die entsprechende IP-Adresse für den virtuellen Computer automatisch aufgelöst.

az ssh vm -n myVM -g AzureADLinuxVM

Geben Sie, wenn Sie dazu aufgefordert werden, auf der Anmeldeseite Ihre Microsoft Entra-Anmeldeinformationen ein, führen Sie die Multi-Faktor-Authentifizierung aus, und/oder erfüllen Sie die Geräteanforderungen. Sie werden nur aufgefordert, wenn Ihre Azure CLI-Sitzung die erforderlichen Kriterien für den bedingten Zugriff noch nicht erfüllt. Schließen Sie das Browserfenster, und kehren Sie zur SSH-Eingabeaufforderung zurück. Sie werden automatisch mit der VM verbunden.

Sie sind nun mit den entsprechend zugewiesenen Rollenberechtigungen (z. B. „VM-Benutzer“ oder „VM-Administrator“) bei der Linux-VM angemeldet. Wenn Ihrem Benutzerkonto die Rolle „VM-Administratoranmeldung“ zugewiesen ist, können Sie mit „sudo“ Befehle ausführen, für die Stammberechtigungen erforderlich sind.

Anmelden mithilfe von Azure Cloud Shell

Sie können mit Azure Cloud Shell eine Verbindung zu virtuellen Computern herzustellen, ohne eine lokale Installation auf Ihrem Client-Computer vornehmen zu müssen. Starten Sie Cloud Shell, indem Sie rechts oben im Azure-Portal auf das Shellsymbol klicken.

Cloud Shell stellt automatisch im Kontext des angemeldeten Benutzers eine Verbindung mit einer Sitzung her. Führen Sie nun az login erneut aus, und durchlaufen Sie den interaktiven Anmeldevorgang:

az login

Anschließend können Sie mit den normalen az ssh vm-Befehlen eine Verbindung herstellen, indem Sie den Namen und die Ressourcengruppe oder die IP-Adresse der VM angeben:

az ssh vm -n myVM -g AzureADLinuxVM

Hinweis

Das Erzwingen einer Richtlinie für bedingten Zugriff, die Gerätekonformität oder ein hybrid in Microsoft Entra eingebundenes Gerät erfordert, wird bei Verwenden von Azure Cloud Shell nicht unterstützt.

Anmelden mit dem Microsoft Entra-Dienstprinzipal zum Herstellen einer SSH-Verbindung mit der Linux-VM

Die Azure CLI unterstützt die Authentifizierung mit einem Dienstprinzipal anstelle eines Benutzerkontos. Da Dienstprinzipale nicht an einen bestimmten Benutzer gebunden sind, können Kunden damit eine SSH-Verbindung mit einer VM herstellen, um etwaige Automatisierungsszenarien zu unterstützen. Dem Dienstprinzipal müssen VM-Administrator- oder VM-Benutzerrechte zugewiesen sein. Weisen Sie Berechtigungen auf Abonnement- oder Ressourcengruppenebene zu.

Im folgenden Beispiel werden dem Dienstprinzipal auf Ressourcengruppenebene VM-Administratorrechte zugewiesen. Ersetzen Sie die Platzhalter für Dienstprinzipalobjekt-ID, Abonnement-ID und Ressourcengruppenname.

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

Authentifizieren Sie sich anhand des folgenden Beispiels mithilfe des Dienstprinzipals bei der Azure CLI. Weitere Informationen finden Sie im Artikel Anmelden bei der Azure CLI mit einem Dienstprinzipal.

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

Sobald die Authentifizierung mit einem Dienstprinzipal abgeschlossen ist, verwenden Sie die normalen SSH-Befehle in der Azure CLI, um eine Verbindung mit der VM herzustellen:

az ssh vm -n myVM -g AzureADLinuxVM

Exportieren der SSH-Konfiguration für die Verwendung mit OpenSSH unterstützenden SSH-Clients

Bei der Anmeldung bei Linux-VMs in Azure mithilfe von Microsoft Entra ID wird der Export des OpenSSH-Zertifikats und der Konfiguration unterstützt. Das heißt, dass Sie für die Anmeldung bei Microsoft Entra ID alle SSH-Clients verwenden können, die OpenSSH-Zertifikate unterstützen. Im folgenden Beispiel wird die Konfiguration aller IP-Adressen exportiert, die der VM zugewiesen sind:

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

Alternativ können Sie die Konfiguration exportieren, indem Sie nur die IP-Adresse angeben. Ersetzen Sie die IP-Adresse im folgenden Beispiel durch die öffentliche oder private IP-Adresse der VM. (Bei privaten IP-Adressen müssen Sie selbst für Konnektivität sorgen.) Geben Sie az ssh config -h ein, um Hilfe zu diesem Befehl zu erhalten.

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

Anschließend können Sie über die normale OpenSSH-Nutzung eine Verbindung zu dem virtuellen Computer herstellen. Die Verbindung kann über einen beliebigen SSH-Client hergestellt werden, der OpenSSH verwendet.

Ausführen von sudo mit Microsoft Entra Anmeldung

Wenn Benutzer mit der Rolle „VM-Administrator“ erfolgreich eine SSH-Verbindung mit einer Linux-VM hergestellt haben, können sie sudo ohne weitere Interaktions- oder Authentifizierungsanforderung ausführen. Benutzer, denen die Rolle „VM-Benutzer“ zugewiesen ist, können sudo nicht ausführen.

Herstellen einer Verbindung mit VMs in VM-Skalierungsgruppen

VM-Skalierungsgruppen werden unterstützt, doch sind die Schritte zum Aktivieren und Herstellen einer Verbindung mit den VMs in einer VM-Skalierungsgruppe etwas anders:

  1. Erstellen Sie eine VM-Skalierungsgruppe, oder wählen Sie eine bereits vorhandene aus. Aktivieren Sie für Ihre VM-Skalierungsgruppe eine systemseitig zugewiesene verwaltete Identität:

    az vmss identity assign --name myVMSS --resource-group AzureADLinuxVM
    
  2. Installieren Sie die Microsoft Entra-Erweiterung in Ihrer VM-Skalierungsgruppe:

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

VM-Skalierungsgruppen besitzen in der Regel keine öffentlichen IP-Adressen. Sie müssen diese mit einem anderen Computer vernetzen, der auf das virtuelle Azure-Netzwerk zugreifen kann. In diesem Beispiel wird gezeigt, wie Sie mithilfe der privaten IP-Adresse einer VM in einer VM-Skalierungsgruppe eine Verbindung über einen Computer im selben virtuellen Netzwerk herstellen:

az ssh vm --ip 10.11.123.456

Hinweis

Sie können die IP-Adressen der VMs in der VM-Skalierungsgruppe nicht automatisch mithilfe der Schalter --resource-group und --name ermitteln.

Migrieren von der vorherigen (Vorschau-) Version

Wenn Sie eine frühere Version der Microsoft Entra-Anmeldung für Linux auf Basis des Gerätecodeflows verwenden, führen mithilfe der Azure CLI die folgenden Schritte aus:

  1. Deinstallieren Sie auf der VM die Erweiterung AADLoginForLinux:

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

    Hinweis

    Die Deinstallation der Erweiterung kann misslingen, wenn Microsoft Entra-Benutzer aktuell bei der VM angemeldet sind. Stellen Sie sicher, dass alle Benutzer zuerst abgemeldet werden.

  2. Aktivieren Sie eine systemseitig zugewiesene verwaltete Identität auf Ihrer VM:

    az vm identity assign -g myResourceGroup -n myVm
    
  3. Installieren Sie auf der VM die Erweiterung AADSSHLoginForLinux:

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

Erfüllen von Standards und Bewertung der Konformität mit Azure Policy

Verwenden Sie Azure Policy für Folgendes:

  • Stellen Sie sicher, dass die Microsoft Entra-Anmeldung für Ihre neuen und vorhandenen Linux-VMs aktiviert ist.
  • Bewerten Sie die Konformität Ihrer Umgebung auf einem Konformitätsdashboard.

Diese Funktionalität ermöglicht zahlreiche Erzwingungsstufen. Sie können neue und vorhandene Linux-VMs in Ihrer Umgebung kennzeichnen, für welche die Microsoft Entra-Anmeldung nicht aktiviert ist. Sie können Azure Policy auch zum Bereitstellen der Microsoft Entra-Erweiterung auf neuen Linux-VMs verwenden, auf denen Microsoft Entra-Anmeldungen noch nicht aktiviert sind, Sie können aber auch vorhandene Linux-VMs auf denselben Standard aktualisieren.

Neben diesen Möglichkeiten können Sie Azure Policy auch zum Erkennen und Kennzeichnen von Linux-VMs einsetzen, auf denen nicht genehmigte lokale Konten erstellt wurden. Weitere Informationen finden Sie in der Azure-Richtlinie.

Beheben von Problemen bei der Anmeldung

Mithilfe der folgenden Abschnitte können Sie häufig auftretende Fehler beheben, wenn Sie versuchen, mit Microsoft Entra-Anmeldeinformationen eine SSH-Verbindung herzustellen.

Token konnte nicht aus lokalem Cache abgerufen werden

Wenn Sie die Meldung erhalten, dass das Token nicht aus dem lokalen Cache abgerufen werden konnte, müssen Sie az login erneut ausführen und einen interaktiven Anmeldevorgang durchlaufen. Lesen Sie den Abschnitt zum Anmelden mithilfe von Azure Cloud Shell.

Zugriff verweigert: Azure-Rolle nicht zugewiesen

Wenn an der SSH-Eingabeaufforderung die Fehlermeldung „Azure-Rolle nicht zugewiesen“ angezeigt wird, prüfen Sie, ob Sie für die VM Azure RBAC-Richtlinien konfiguriert haben, mit denen dem Benutzer entweder die Rolle „Anmeldeinformationen des VM-Administrators“ oder die Rolle „Anmeldeinformationen für VM-Benutzer“ zugewiesen wurde. Wenn Sie Probleme mit Azure-Rollenzuweisungen haben, lesen Sie den Artikel "Problembehandlung bei Azure RBAC".

Probleme beim Löschen der alten Erweiterung (AADLoginForLinux)

Wenn bei den Deinstallationsskripts Fehler auftreten, bleibt die Erweiterung möglicherweise in einem Übergangszustand hängen. In diesem Fall kann die Erweiterung bei ihrer Entfernung Pakete zurücklassen, die sie eigentlich deinstallieren sollte. In solchen Fällen ist es besser, die alten Pakete manuell zu deinstallieren und dann zu versuchen, den Befehl az vm extension delete auszuführen.

So deinstallieren Sie alte Pakete

  1. Melden Sie sich als lokaler Benutzer mit Administratorrechten an.
  2. Stellen Sie sicher, dass keine Microsoft Entra-Benutzer angemeldet sind. Rufen Sie den Befehl who -u auf, um festzustellen, wer angemeldet ist. Rufen Sie dann sudo kill <pid> für alle Sitzungsprozesse auf, die der vorherige Befehl gemeldet hat.
  3. Führen Sie sudo apt remove --purge aadlogin (Ubuntu/Debian), sudo yum remove aadlogin (RHEL) oder sudo zypper remove aadlogin (openSUSE/SLES) aus.
  4. Wenn beim Befehl ein Fehler auftritt, probieren Sie die Tools auf niedriger Ebene mit deaktivierten Skripts aus:
    1. Führen Sie für Ubuntu/Debian sudo dpkg --purge aadlogin aus. Wenn es aufgrund des Skripts weiterhin zu Fehlern kommt, löschen Sie die Datei /var/lib/dpkg/info/aadlogin.prerm, und versuchen Sie es erneut.
    2. Führen Sie in allen anderen Fällen rpm -e --noscripts aadogin aus.
  5. Wiederholen Sie die Schritte 3 und 4 für das Paket aadlogin-selinux.

Fehler bei der Installation der Erweiterung

Die Installation der VM-Erweiterung AADSSHLoginForLinux auf vorhandenen VMs schlägt mit einem der folgenden bekannten Fehlercodes fehl.

Exitcode ungleich null: 22

Wenn Sie exit code 22 erhalten, wird der Status der AADSSHLoginForLinux VM-Erweiterung als "Transitioning " im Portal angezeigt.

Dieser Fehler tritt auf, da eine vom systemseitig zugewiesene verwaltete Identität erforderlich ist.

Die Lösung ist wie folgt:

  1. Deinstallieren Sie die Erweiterung, bei der der Fehler aufgetreten ist.
  2. Aktivieren Sie eine systemseitig zugewiesene verwaltete Identität auf der Azure-VM.
  3. Führen Sie den Installationsbefehl für die Erweiterung erneut aus.

Exitcode ungleich null: 23

Wenn Sie exit code 23 erhalten, wird der Status der AADSSHLoginForLinux VM-Erweiterung als "Transitioning " im Portal angezeigt.

Dieser Fehler tritt auf, wenn die ältere VM-Erweiterung AADLoginForLinux noch installiert ist.

Die Lösung ist das Deinstallieren der älteren VM-Erweiterung AADLoginForLinux auf der VM. Der Status der neuen AADSSHLoginForLinux VM-Erweiterung ändert sich dann in "Bereitstellung erfolgreich " im Portal.

Installationsfehler bei Verwendung eines HTTP-Proxys

Die Erweiterung benötigt eine HTTP-Verbindung, um Pakete zu installieren und zu überprüfen, ob eine Systemidentität vorhanden ist. Sie wird im Kontext von walinuxagent.service ausgeführt und erfordert eine Änderung, um den Agent über die Proxyeinstellungen zu informieren. Öffnen Sie die Datei /lib/systemd/system/walinuxagent.service auf dem Zielcomputer, und fügen Sie nach [Service] die folgende Zeile hinzu:

[Service]
Environment="http_proxy=http://proxy.example.com:80/"
Environment="https_proxy=http://proxy.example.com:80/"
Environment="no_proxy=169.254.169.254"

Starten Sie den Agent neu (sudo systemctl restart walinuxagent). Versuchen Sie es anschließend erneut.

Fehler beim Befehl „az ssh vm“: KeyError access_token

Wenn der Befehl az ssh vm fehlschlägt, verwenden Sie eine veraltete Version des Azure CLI-Clients.

Die Lösung ist das Aktualisieren des Azure CLI-Clients auf mindestens Version 2.21.0.

SSH-Verbindung wurde geschlossen

Nachdem sich ein Benutzer erfolgreich mit az login angemeldet hat, kann die Verbindung mit der VM über az ssh vm -ip <address> oder az ssh vm --name <vm_name> -g <resource_group> mit der Meldung „Verbindung von <ip_address> Port 22 geschlossen“ fehlschlagen.

Eine Ursache für diesen Fehler ist, dass der Benutzer nicht der Rolle „Anmeldeinformationen des VM-Administrators“ oder „Anmeldeinformationen für VM-Benutzer“ im Geltungsbereich dieser VM zugewiesen ist. In diesem Fall besteht die Lösung darin, den Benutzer einer der Azure RBAC-Rollen im Geltungsbereich dieser VM hinzuzufügen.

Dieser Fehler kann auch auftreten, wenn der Benutzer zwar über eine erforderliche Azure RBAC-Rolle verfügt, aber die systemseitig zugewiesene verwaltete Identität auf der VM deaktiviert wurde. Führen Sie in diesem Fall diese Aktionen aus:

  1. Aktivieren Sie die systemseitig zugewiesene verwaltete Identität auf der VM.
  2. Lassen Sie einige Minuten verstreichen, ehe der Benutzer versucht, sich mithilfe von az ssh vm --ip <ip_address> zu verbinden.

Verbindungsprobleme bei VM-Skalierungsgruppen

Bei VM-Verbindungen mit VM-Skalierungsgruppen können Fehler auftreten, wenn die Skalierungsgruppeninstanzen in einem alten Modell ausgeführt werden.

Durch ein Upgrade der Skalierungsgruppeninstanzen auf das neueste Modell kann das Problem möglicherweise behoben werden, insbesondere dann, wenn seit der Installation der Erweiterung für die Microsoft Entra-Anmeldung kein Upgrade erfolgt ist. Beim Upgrade einer Instanz wird eine Standardkonfiguration für Skalierungsgruppen auf die jeweilige Instanz angewendet.

Die Anweisungen „AllowGroups“ oder „DenyGroups“ in sshd_config führen dazu, dass die erste Anmeldung für Microsoft Entra-Benutzer fehlschlägt.

Wenn sshd_config entweder AllowGroups oder DenyGroups Anweisungen enthält, schlägt die erste Anmeldung für Microsoft Entra-Benutzer fehl. Wenn die Anweisung hinzugefügt wurde, nachdem Benutzer sich bereits erfolgreich angemeldet haben, können sie sich anmelden.

Eine Lösung besteht darin, die Anweisungen AllowGroups und DenyGroups aus sshd_config zu entfernen.

Eine weitere Lösung besteht darin, AllowGroups und DenyGroups in einen match user-Abschnitt in sshd_config zu verschieben. Stellen Sie sicher, dass die Übereinstimmungsvorlage Microsoft Entra-Benutzer ausschließt.

„Zugriff verweigert“ wird beim Versuch, eine Verbindung von Azure Shell mit einer VM mit Linux Red Hat/Oracle 7.X herzustellen, angezeigt.

Die OpenSSH-Serverversion auf der Ziel-VM 7.4 ist zu alt. Die Version ist mit OpenSSH-Clientversion 8.8 nicht kompatibel. Weitere Informationen finden Sie unter RSA SHA256-Zertifikate funktionieren nicht mehr.

Problemumgehung:

  • Im Befehl "PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com" wird die Option az ssh vm hinzugefügt.
az ssh vm -n myVM -g MyResourceGroup -- -A -o "PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com"
  • Die Option "PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com" wird in /home/<user>/.ssh/config file hinzugefügt.

Fügen Sie der Clientkonfigurationsdatei "PubkeyAcceptedKeyTypes +ssh-rsa-cert-v01@openssh.com" hinzu.

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

Nächste Schritte