Přihlášení k virtuálnímu počítači s Linuxem v Azure pomocí ID Microsoft Entra a OpenSSH

Pokud chcete zlepšit zabezpečení virtuálních počítačů s Linuxem v Azure, můžete se integrovat s ověřováním Microsoft Entra. Teď můžete použít Microsoft Entra ID jako základní ověřovací platformu a certifikační autoritu pro připojení SSH k virtuálnímu počítači s Linuxem pomocí Microsoft Entra ID a ověřování založeného na certifikátech OpenSSH. Tato funkce umožňuje organizacím spravovat přístup k virtuálním počítačům pomocí řízení přístupu na základě role v Azure (RBAC) a zásad podmíněného přístupu.

V tomto článku se dozvíte, jak vytvořit a nakonfigurovat virtuální počítač s Linuxem a přihlásit se pomocí ID Microsoft Entra pomocí ověřování založeného na certifikátu OpenSSH.

Existuje mnoho výhod zabezpečení při přihlašování k virtuálním počítačům s Linuxem v Azure s ověřováním založeným na certifikátech OpenSSH. Patří mezi ně:

  • Přihlaste se k virtuálním počítačům Azure s Linuxem pomocí svých přihlašovacích údajů Microsoft Entra.
  • Získejte ověřování založené na klíči SSH bez nutnosti distribuovat klíče SSH uživatelům nebo zřizovat veřejné klíče SSH na virtuálních počítačích Azure s Linuxem, které nasadíte. Toto prostředí je mnohem jednodušší, než když se nemusíte starat o rozrůstat se zastaralými veřejnými klíči SSH, které by mohly způsobit neoprávněný přístup.
  • Omezte závislost na účtech místního správce, krádeži přihlašovacích údajů a slabých přihlašovacích údajích.
  • Pomozte zabezpečit virtuální počítače s Linuxem konfigurací složitosti hesel a zásad životnosti hesel pro ID Microsoft Entra.
  • Pomocí RBAC určete, kdo se může přihlásit k virtuálnímu počítači jako běžný uživatel nebo s oprávněními správce. Když se uživatelé připojí k vašemu týmu, můžete aktualizovat zásady Azure RBAC pro virtuální počítač, aby podle potřeby udělily přístup. Když zaměstnanci opustí vaši organizaci a jejich uživatelské účty jsou zakázané nebo odebrané z Microsoft Entra ID, už nemají přístup k vašim prostředkům.
  • Pomocí podmíněného přístupu nakonfigurujte zásady tak, aby vyžadovaly vícefaktorové ověřování nebo aby bylo nutné, aby vaše klientské zařízení bylo spravované (například kompatibilní nebo hybridní připojení Microsoft Entra), než ho budete moct použít SSH na virtuální počítače s Linuxem.
  • Zásady nasazení a auditu Azure použijte k vyžadování přihlášení Microsoft Entra pro virtuální počítače s Linuxem a označení neschválené místní účty.

Přihlášení k virtuálním počítačům s Linuxem pomocí Microsoft Entra ID funguje pro zákazníky, kteří používají Active Directory Federation Services (AD FS).

Podporované linuxové distribuce a oblasti Azure

Pro nasazení v podporované oblasti se v současné době podporují následující distribuce Linuxu:

Distribuce Verze
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+
Věštírna Oracle Linux 8, Oracle Linux 9
RedHat Enterprise Linux (RHEL) RHEL 7.4 až RHEL 7.9, RHEL 8.3+, RHEL 9.0+
Skalnatý Rocky 8, Rocky 9
SUSE Linux Enterprise Server (SLES) SLES 12, SLES 15.1+
Ubuntu Ubuntu 16.04 až Ubuntu 24.04

Pro tuto funkci se v současné době podporují následující oblasti Azure:

  • Globální azure
  • Azure Government
  • Microsoft Azure provozovaný společností 21Vianet

Použití rozšíření SSH pro Azure CLI v clusterech Azure Kubernetes Service (AKS) se nepodporuje. Další informace najdete v tématu Zásady podpory pro AKS.

Pokud se rozhodnete nainstalovat a používat Azure CLI místně, musí mít verzi 2.22.1 nebo novější. Spuštěním vyhledejte az --version verzi. Pokud potřebujete nainstalovat nebo upgradovat, přečtěte si téma Instalace Azure CLI.

Poznámka

Tato funkce je dostupná také pro servery s podporou Azure Arc.

Splnění požadavků na přihlášení pomocí Microsoft Entra ID pomocí ověřování založeného na certifikátech OpenSSH

Pokud chcete povolit přihlášení Microsoft Entra prostřednictvím ověřování založeného na certifikátu SSH pro virtuální počítače s Linuxem v Azure, ujistěte se, že splňujete následující požadavky na síť, virtuální počítač a klienta (klienta SSH).

Síť

Konfigurace sítě virtuálních počítačů musí umožňovat odchozí přístup k následujícím koncovým bodům přes port TCP 443.

Globální azure:

  • https://packages.microsoft.com: Pro instalaci a upgrady balíčků.
  • http://169.254.169.254: Koncový bod služby Azure Instance Metadata Service.
  • https://login.microsoftonline.com: Pro toky ověřování založené na PAM (pluggable authentication modules)
  • https://pas.windows.net: Pro toky Azure RBAC.

Azure Government:

  • https://packages.microsoft.com: Pro instalaci a upgrady balíčků.
  • http://169.254.169.254: Koncový bod služby Azure Instance Metadata Service.
  • https://login.microsoftonline.us: Pro toky ověřování založené na PAM.
  • https://pasff.usgovcloudapi.net: Pro toky Azure RBAC.

Microsoft Azure provozovaný společností 21Vianet:

  • https://packages.microsoft.com: Pro instalaci a upgrady balíčků.
  • http://169.254.169.254: Koncový bod služby Azure Instance Metadata Service.
  • https://login.chinacloudapi.cn: Pro toky ověřování založené na PAM.
  • https://pas.chinacloudapi.cn: Pro toky Azure RBAC.

Virtuální počítač

Ujistěte se, že je váš virtuální počítač nakonfigurovaný s následujícími funkcemi:

  • Spravovaná identita přiřazená systémem Tato možnost se automaticky vybere při vytváření virtuálních počítačů pomocí webu Azure Portal a vyberete možnost přihlášení k Microsoft Entra. Spravovanou identitu přiřazenou systémem můžete povolit také na novém nebo existujícím virtuálním počítači pomocí Azure CLI.
  • aadsshlogin a aadsshlogin-selinux (podle potřeby). Tyto balíčky se instalují s rozšířením virtuálního počítače AADSSHLoginForLinux. Toto rozšíření se nainstaluje při vytváření virtuálních počítačů pomocí webu Azure Portal nebo Azure CLI a povolení přihlášení k Microsoft Entra (karta Správa ).

Klient

Ujistěte se, že váš klient splňuje následující požadavky:

  • Podpora klienta SSH pro certifikáty založené na OpenSSH pro ověřování. K splnění tohoto požadavku můžete použít Azure CLI (2.21.1 nebo novější) s OpenSSH (součástí Windows 10 verze 1803 nebo novější) nebo Azure Cloud Shell.

  • Rozšíření SSH pro Azure CLI Toto rozšíření můžete nainstalovat pomocí .az extension add --name ssh Pokud používáte Azure Cloud Shell, nemusíte toto rozšíření instalovat, protože je předinstalované.

    Pokud používáte jiného klienta SSH než Azure CLI nebo Azure Cloud Shell, který podporuje certifikáty OpenSSH, budete stále muset použít Azure CLI s rozšířením SSH k načtení dočasných certifikátů SSH a volitelně konfiguračního souboru. Konfigurační soubor pak můžete použít s klientem SSH.

  • Připojení TCP z klienta k veřejné nebo privátní IP adrese virtuálního počítače. (Funguje také přesměrování proxycommand nebo SSH na počítač s připojením.)

Důležitý

Klienti SSH založené na PuTTY teď podporují certifikáty OpenSSH a je možné je použít k přihlášení pomocí ověřování založeného na certifikátu Microsoft Entra OpenSSH.

Povolení přihlášení Microsoft Entra pro virtuální počítač s Linuxem v Azure

Pokud chcete pro virtuální počítač s Linuxem v Azure použít přihlášení Microsoft Entra, musíte nejprve pro virtuální počítač s Linuxem povolit možnost přihlášení Microsoft Entra. Přiřazení rolí Azure pak nakonfigurujete pro uživatele, kteří mají oprávnění k přihlášení k virtuálnímu počítači. Nakonec použijete klienta SSH, který podporuje OpenSSH, jako je Azure CLI nebo Azure Cloud Shell, k připojení SSH k virtuálnímu počítači s Linuxem.

Pro virtuální počítač s Linuxem můžete povolit přihlášení Microsoft Entra dvěma způsoby:

  • Prostředí webu Azure Portal při vytváření virtuálního počítače s Linuxem
  • Prostředí Azure Cloud Shellu při vytváření virtuálního počítače s Linuxem nebo při použití existujícího virtuálního počítače

Azure Portal

Pro libovolnou podporovanou linuxovou distribuci můžete povolit přihlášení Microsoft Entra pomocí webu Azure Portal.

Pokud například chcete vytvořit dlouhodobý virtuální počítač s Ubuntu Serverem 18.04 (LTS) v Azure s přihlášením Microsoft Entra:

  1. Přihlaste se k webu Azure Portal pomocí účtu, který má přístup k vytváření virtuálních počítačů, a pak vyberte + Vytvořit prostředek.
  2. V oblíbeném zobrazení vyberte Vytvořit v části Ubuntu Server 18.04 LTS.
  3. Na kartě Správa:
    1. Zaškrtněte políčko Přihlásit se pomocí Microsoft Entra ID .
    2. Ujistěte se, že je zaškrtnuté políčko Spravovaná identita přiřazená systémem.
  4. Projděte si zbytek prostředí pro vytvoření virtuálního počítače. Budete muset vytvořit účet správce s uživatelským jménem a heslem nebo veřejným klíčem SSH.

Azure Cloud Shell

Azure Cloud Shell je bezplatné interaktivní prostředí, které můžete použít ke spuštění kroků v tomto článku. Běžné nástroje Azure jsou předinstalované a nakonfigurované ve službě Cloud Shell, abyste je mohli používat se svým účtem. Stačí vybrat tlačítko Kopírovat a zkopírovat kód, vložit ho do Cloud Shellu a pak ho spustit stisknutím klávesy Enter.

Cloud Shell můžete otevřít několika způsoby:

  • Vyberte Vyzkoušet v pravém horním rohu bloku kódu.
  • Otevřete Cloud Shell v prohlížeči.
  • V nabídce v pravém horním rohu webu Azure Portal vyberte tlačítko Cloud Shell.

Pokud se rozhodnete nainstalovat a používat Azure CLI místně, musíte použít verzi 2.22.1 nebo novější. Spuštěním vyhledejte az --version verzi. Pokud potřebujete nainstalovat nebo upgradovat, přečtěte si téma Instalace Azure CLI.

  1. Vytvořte skupinu prostředků spuštěním příkazu az group create.
  2. Vytvořte virtuální počítač spuštěním příkazu az vm create. Použijte podporovanou distribuci v podporované oblasti.
  3. Nainstalujte rozšíření virtuálního počítače Microsoft Entra login pomocí příkazu az vm extension set.

Následující příklad nasadí virtuální počítač a pak nainstaluje rozšíření, které povolí přihlášení Microsoft Entra pro virtuální počítač s Linuxem. Rozšíření virtuálních počítačů jsou malé aplikace, které poskytují úlohy po nasazení a automatizace ve službě Azure Virtual Machines. Upravte příklad podle potřeby tak, aby podporoval vaše požadavky na testování.

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

Vytvoření virtuálního počítače a podpůrných prostředků trvá několik minut.

Rozšíření AADSSHLoginForLinux je možné nainstalovat na existující (podporovanou distribuci) linuxového virtuálního počítače se spuštěným agentem virtuálního počítače a povolit ověřování Microsoft Entra. Pokud nasazujete toto rozšíření do dříve vytvořeného virtuálního počítače, musí mít virtuální počítač přidělený alespoň 1 GB paměti nebo instalace selže.

Hodnota provisioningState Succeeded se zobrazí, když se rozšíření úspěšně nainstaluje na virtuální počítač. Aby mohl virtuální počítač nainstalovat rozšíření, musí mít spuštěného agenta virtuálního počítače.

Konfigurace přiřazení rolí pro virtuální počítač

Teď, když jste vytvořili virtuální počítač, musíte přiřadit jednu z následujících rolí Azure, abyste zjistili, kdo se může k virtuálnímu počítači přihlásit. Pokud chcete tyto role přiřadit, musíte mít roli Správce přístupu k datům virtuálního počítače nebo jakoukoli roli, která zahrnuje Microsoft.Authorization/roleAssignments/write akci, jako je role Správce řízení přístupu na základě role. Pokud ale používáte jinou roli než správce přístupu k datům virtuálního počítače, doporučujeme přidat podmínku, která omezí oprávnění k vytváření přiřazení rolí.

  • Přihlášení správce virtuálního počítače: Uživatelé, kteří mají přiřazenou tuto roli, se můžou přihlásit k virtuálnímu počítači Azure s oprávněními správce.
  • Přihlášení uživatele virtuálního počítače: Uživatelé, kteří mají přiřazenou tuto roli, se můžou přihlásit k virtuálnímu počítači Azure s běžnými uživatelskými oprávněními.

Pokud chcete uživateli povolit přihlášení k virtuálnímu počítači přes SSH, musíte přiřadit roli Přihlášení správce virtuálního počítače nebo Přihlášení uživatele virtuálního počítače ve skupině prostředků, která obsahuje virtuální počítač a jeho přidruženou virtuální síť, síťové rozhraní, veřejnou IP adresu nebo prostředky nástroje pro vyrovnávání zatížení.

Uživatel Azure, který má přiřazenou roli Vlastník nebo Přispěvatel pro virtuální počítač, nemá automaticky oprávnění k přihlášení k virtuálnímu počítači přes SSH. Existuje úmyslné (auditované) oddělení mezi sadou lidí, kteří řídí virtuální počítače, a sadou lidí, kteří mají přístup k virtuálním počítačům.

Existují dva způsoby konfigurace přiřazení rolí pro virtuální počítač:

  • Prostředí webu Azure Portal
  • Prostředí Azure Cloud Shellu

Poznámka

Role Přihlášení správce virtuálního počítače a přihlášení uživatele virtuálního počítače se používají dataActions a dají se přiřadit ve skupině pro správu, předplatném, skupině prostředků nebo oboru prostředků. Doporučujeme přiřadit role na úrovni skupiny pro správu, předplatného nebo skupiny prostředků, nikoli na úrovni jednotlivých virtuálních počítačů. Tento postup zabraňuje riziku dosažení limitu přiřazení rolí Azure na předplatné.

Azure Portal

Konfigurace přiřazení rolí pro virtuální počítače s Linuxem s podporou Microsoft Entra:

  1. V části Skupina prostředků vyberte skupinu prostředků, která obsahuje virtuální počítač a jeho přidruženou virtuální síť, síťové rozhraní, veřejnou IP adresu nebo prostředek nástroje pro vyrovnávání zatížení.

  2. Vyberte Řízení přístupu (IAM).

  3. Výběrem možnosti Přidat>přiřazení role otevřete stránku Přidat přiřazení role.

  4. Přiřaďte následující roli. Podrobný postup najdete v tématu Přiřazení rolí Azure pomocí webu Azure Portal.

    Nastavení Hodnota
    Role Přihlášení správce virtuálního počítače nebo přihlášení uživatele virtuálního počítače
    Přiřazení přístupu k Uživatel, skupina, instanční objekt nebo spravovaná identita

    Snímek obrazovky znázorňující stránku pro přidání přiřazení role

Po chvíli se objekt zabezpečení přiřadí roli ve vybraném oboru.

Azure Cloud Shell

Následující příklad pomocí příkazu az role assignment create přiřadí roli přihlášení správce virtuálního počítače k virtuálnímu počítači pro aktuálního uživatele Azure. Uživatelské jméno aktuálního účtu Azure získáte pomocí příkazu az account show a pomocí příkazu az vm show nastavíte obor na virtuální počítač vytvořený v předchozím kroku.

Obor můžete přiřadit také na úrovni skupiny prostředků nebo předplatného. Platí normální oprávnění dědičnosti Azure RBAC.

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

Poznámka

Pokud se doména Microsoft Entra a doména přihlašovacího uživatelského jména neshodují, musíte zadat ID objektu vašeho uživatelského účtu pomocí , --assignee-object-idnikoli pouze uživatelského jména pro --assignee. ID objektu pro uživatelský účet můžete získat pomocí příkazu az ad user list.

Další informace o tom, jak pomocí Azure RBAC spravovat přístup k prostředkům předplatného Azure, najdete v tématu Postup přiřazení role Azure.

Instalace rozšíření SSH pro Azure CLI

Pokud používáte Azure Cloud Shell, není potřeba žádné další nastavení, protože v prostředí Cloud Shell už je zahrnutá minimální požadovaná verze Azure CLI i rozšíření SSH pro Azure CLI.

Spuštěním následujícího příkazu přidejte rozšíření SSH pro Azure CLI:

az extension add --name ssh

Minimální verze vyžadovaná pro rozšíření je 0.1.4. Pomocí následujícího příkazu zkontrolujte nainstalovanou verzi:

az extension show --name ssh

Vynucení zásad podmíněného přístupu

Můžete vynutit zásady podmíněného přístupu, které jsou povolené pro přihlášení Microsoft Entra, například:

  • Vyžadování vícefaktorového ověřování
  • Vyžadování kompatibilního zařízení nebo hybridního zařízení připojeného k Microsoft Entra pro zařízení, na kterém běží klient SSH.
  • Kontrola rizik před autorizací přístupu k virtuálním počítačům s Linuxem v Azure

Aplikace, která se zobrazí v zásadách podmíněného přístupu, se nazývá Přihlášení k virtuálnímu počítači Azure s Linuxem.

Poznámka

Vynucení zásad podmíněného přístupu, které vyžaduje dodržování předpisů zařízením nebo hybridní připojení Microsoft Entra na zařízení, na kterém běží klient SSH, funguje jenom s Rozhraním příkazového řádku Azure, které běží ve Windows a macOS. Nepodporuje se, když používáte Azure CLI v Linuxu nebo Azure Cloud Shellu.

Chybějící aplikace

Pokud v podmíněném přístupu chybí přihlašovací aplikace virtuálního počítače Azure s Linuxem, ujistěte se, že aplikace není v tenantovi:

  1. Přihlaste se do Centra pro správu Microsoft Entra jako alespoň správce cloudových aplikací.
  2. Přejděte k podnikovým aplikacím> identit.>
  3. Odeberte filtry, aby se zobrazily všechny aplikace, a vyhledejte virtuální počítač. Pokud se v důsledku toho přihlášení k virtuálnímu počítači Microsoft Azure s Linuxem nezobrazuje, v tenantovi chybí instanční objekt.

Přihlaste se pomocí uživatelského účtu Microsoft Entra k SSH k virtuálnímu počítači s Linuxem.

Přihlášení pomocí Azure CLI

Zadejte az login. Tento příkaz otevře okno prohlížeče, ve kterém se můžete přihlásit pomocí účtu Microsoft Entra.

az login 

Pak zadejte az ssh vm. Následující příklad automaticky přeloží příslušnou IP adresu pro virtuální počítač.

az ssh vm -n myVM -g AzureADLinuxVM

Pokud se zobrazí výzva, zadejte přihlašovací údaje Microsoft Entra na přihlašovací stránce, proveďte vícefaktorové ověřování a/nebo uspokojte kontroly zařízení. Zobrazí se výzva jenom v případě, že relace Azure CLI ještě nesplňuje žádná požadovaná kritéria podmíněného přístupu. Zavřete okno prohlížeče, vraťte se k příkazovému řádku SSH a budete automaticky připojeni k virtuálnímu počítači.

Teď jste přihlášení k virtuálnímu počítači s Linuxem s přiřazenými oprávněními role, jako je uživatel virtuálního počítače nebo správce virtuálního počítače. Pokud je vašemu uživatelskému účtu přiřazena přihlašovací role správce virtuálního počítače, můžete pomocí příkazu sudo spustit příkazy, které vyžadují kořenová oprávnění.

Přihlášení pomocí Azure Cloud Shellu

Azure Cloud Shell můžete použít k připojení k virtuálním počítačům bez nutnosti instalovat cokoli místně na klientský počítač. Spusťte Cloud Shell výběrem ikony prostředí v pravém horním rohu webu Azure Portal.

Cloud Shell se automaticky připojí k relaci v kontextu přihlášeného uživatele. Teď spusťte az login znovu a projděte si interaktivní tok přihlašování:

az login

Pak se můžete pomocí normálních az ssh vm příkazů připojit pomocí názvu a skupiny prostředků nebo IP adresy virtuálního počítače:

az ssh vm -n myVM -g AzureADLinuxVM

Poznámka

Vynucení zásad podmíněného přístupu, které vyžaduje dodržování předpisů zařízením nebo hybridní připojení Microsoft Entra, se nepodporuje, když používáte Azure Cloud Shell.

Přihlaste se pomocí instančního objektu Microsoft Entra k SSH k virtuálnímu počítači s Linuxem.

Azure CLI podporuje ověřování pomocí instančního objektu místo uživatelského účtu. Vzhledem k tomu, že instanční objekty nejsou svázané s žádným konkrétním uživatelem, můžou je zákazníci použít k připojení SSH k virtuálnímu počítači, aby podporovali všechny scénáře automatizace, které můžou mít. Instanční objekt musí mít přiřazená práva správce virtuálního počítače nebo uživatele virtuálního počítače. Přiřaďte oprávnění na úrovni předplatného nebo skupiny prostředků.

Následující příklad přiřadí instančnímu objektu práva správce virtuálního počítače na úrovni skupiny prostředků. Nahraďte zástupné symboly pro ID instančního objektu, ID předplatného a název skupiny prostředků.

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

Pomocí následujícího příkladu se ověřte v Azure CLI pomocí instančního objektu. Další informace najdete v článku Přihlášení k Azure CLI pomocí instančního objektu.

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

Po dokončení ověřování pomocí instančního objektu se pomocí normálních příkazů SSH Azure CLI připojte k virtuálnímu počítači:

az ssh vm -n myVM -g AzureADLinuxVM

Export konfigurace SSH pro použití s klienty SSH, kteří podporují OpenSSH

Přihlášení k virtuálním počítačům Azure s Linuxem pomocí Microsoft Entra ID podporuje export certifikátu a konfigurace OpenSSH. To znamená, že můžete použít libovolné klienty SSH, kteří podporují certifikáty založené na OpenSSH k přihlášení prostřednictvím Microsoft Entra ID. Následující příklad exportuje konfiguraci pro všechny IP adresy přiřazené k virtuálnímu počítači:

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

Případně můžete konfiguraci exportovat zadáním pouze IP adresy. Ip adresu v následujícím příkladu nahraďte veřejnou nebo privátní IP adresou vašeho virtuálního počítače. (Pro privátní IP adresy musíte použít vlastní připojení.) Zadejte az ssh config -h nápovědu k tomuto příkazu.

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

K virtuálnímu počítači se pak můžete připojit pomocí normálního využití OpenSSH. Připojení je možné provést prostřednictvím libovolného klienta SSH, který používá OpenSSH.

Spuštění sudo s přihlášením Microsoft Entra

Jakmile se uživatelům, kteří mají přiřazenou roli správce virtuálního počítače, úspěšně připojí SSH k virtuálnímu počítači s Linuxem, budou moct spouštět sudo bez dalších požadavků na interakci nebo ověřování. Uživatelé, kteří mají přiřazenou roli uživatele virtuálního počítače, nebudou moct spustit sudo.

Připojení k virtuálním počítačům ve škálovacích sadách virtuálních počítačů

Škálovací sady virtuálních počítačů se podporují, ale postup se mírně liší pro povolení a připojení k virtuálním počítačům ve škálovací sadě virtuálních počítačů:

  1. Vytvořte škálovací sadu virtuálních počítačů nebo zvolte sadu, která už existuje. Povolení spravované identity přiřazené systémem pro škálovací sadu virtuálních počítačů:

    az vmss identity assign --name myVMSS --resource-group AzureADLinuxVM
    
  2. Nainstalujte rozšíření Microsoft Entra do škálovací sady virtuálních počítačů:

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

Škálovací sady virtuálních počítačů obvykle nemají veřejné IP adresy. Musíte k nim mít připojení z jiného počítače, který se může spojit s virtuální sítí Azure. Tento příklad ukazuje, jak použít privátní IP adresu virtuálního počítače ve škálovací sadě virtuálních počítačů pro připojení z počítače ve stejné virtuální síti:

az ssh vm --ip 10.11.123.456

Poznámka

IP adresy virtuálních počítačů škálovací sady virtuálních počítačů nemůžete automaticky určit pomocí --resource-group přepínačů a --name přepínačů.

Migrace z předchozí verze (Preview)

Pokud používáte předchozí verzi přihlášení Microsoft Entra pro Linux, která byla založená na toku kódu zařízení, proveďte následující kroky pomocí Azure CLI:

  1. Odinstalujte rozšíření AADLoginForLinux na virtuálním počítači:

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

    Poznámka

    Odinstalace rozšíření může selhat, pokud jsou na virtuálním počítači aktuálně přihlášeni všichni uživatelé Microsoft Entra. Nejprve se ujistěte, že jsou všichni uživatelé odhlášeni.

  2. Povolte spravovanou identitu přiřazenou systémem na virtuálním počítači:

    az vm identity assign -g myResourceGroup -n myVm
    
  3. Nainstalujte na virtuální počítač rozšíření AADSSHLoginForLinux:

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

Použití služby Azure Policy ke splnění standardů a posouzení dodržování předpisů

Použijte Azure Policy k:

  • Ujistěte se, že je pro nové a stávající virtuální počítače s Linuxem povolené přihlášení Microsoft Entra.
  • Vyhodnoťte dodržování předpisů vašeho prostředí ve velkém měřítku na řídicím panelu dodržování předpisů.

Díky této funkci můžete použít mnoho úrovní vynucování. Nové a existující virtuální počítače s Linuxem můžete označit ve vašem prostředí, které nemají povolené přihlášení Microsoft Entra. Azure Policy můžete také použít k nasazení rozšíření Microsoft Entra na nové virtuální počítače s Linuxem, které nemají povolené přihlášení Microsoft Entra, a také napravit stávající virtuální počítače s Linuxem na stejný standard.

Kromě těchto možností můžete pomocí služby Azure Policy detekovat a označit virtuální počítače s Linuxem, které mají na svých počítačích vytvořené neschválené místní účty. Další informace najdete v Azure Policy.

Řešení potíží s přihlášením

Následující části vám pomůžou opravit běžné chyby, ke kterým může dojít při pokusu o připojení SSH pomocí přihlašovacích údajů Microsoft Entra.

Token se nepodařilo načíst z místní mezipaměti.

Pokud se zobrazí zpráva s oznámením, že se token nepodařilo načíst z místní mezipaměti, musíte znovu spustit az login a projít interaktivním tokem přihlašování. Projděte si část o přihlášení pomocí Azure Cloud Shellu.

Odepření přístupu: Role Azure není přiřazená

Pokud se na příkazovém řádku SSH zobrazí chyba Role Azure není přiřazená, ověřte, že jste nakonfigurovali zásady Azure RBAC pro virtuální počítač, které uživateli udělí roli přihlášení správce virtuálního počítače nebo roli přihlášení uživatele virtuálního počítače. Pokud máte problémy s přiřazeními rolí Azure, přečtěte si článek Řešení potíží s Azure RBAC.

Problémy s odstraněním starého rozšíření (AADLoginForLinux)

Pokud skripty odinstalace selžou, může se rozšíření zaseknout v přechodném stavu. Když k tomu dojde, rozšíření může nechat balíčky, které má během odebrání odinstalovat. V takových případech je lepší ručně odinstalovat staré balíčky a pak se pokusit spustit az vm extension delete příkaz.

Odinstalace starých balíčků:

  1. Přihlaste se jako místní uživatel s oprávněními správce.
  2. Ujistěte se, že nejsou přihlášeni žádní uživatelé Microsoft Entra. Voláním who -u příkazu zjistíte, kdo je přihlášený. Pak se použije sudo kill <pid> pro všechny procesy relace, které oznámil předchozí příkaz.
  3. Spusťte sudo apt remove --purge aadlogin (Ubuntu/Debian), sudo yum remove aadlogin (RHEL) nebo sudo zypper remove aadlogin (openSUSE nebo SLES).
  4. Pokud příkaz selže, vyzkoušejte nástroje nízké úrovně se zakázanými skripty:
    1. Pro Ubuntu/Debian spusťte sudo dpkg --purge aadloginpříkaz . Pokud kvůli skriptu stále dochází k selhání, odstraňte /var/lib/dpkg/info/aadlogin.prerm soubor a zkuste to znovu.
    2. Pro všechno ostatní spusťte rpm -e --noscripts aadogin.
  5. Opakujte kroky 3-4 pro balíček aadlogin-selinux.

Chyby instalace rozšíření

Instalace rozšíření virtuálního počítače AADSSHLoginForLinux do stávajících počítačů může selhat s jedním z následujících známých kódů chyb.

Nenulový ukončovací kód 22

Pokud se zobrazí ukončovací kód 22, zobrazí se stav rozšíření virtuálního počítače AADSSHLoginForLinux jako přechod na portálu.

K tomuto selhání dochází, protože se vyžaduje spravovaná identita přiřazená systémem.

Řešením je:

  1. Odinstalujte rozšíření, které selhalo.
  2. Povolení spravované identity přiřazené systémem na virtuálním počítači Azure
  3. Spusťte znovu instalační příkaz rozšíření.

Nenulový ukončovací kód 23

Pokud se zobrazí ukončovací kód 23, zobrazí se stav rozšíření virtuálního počítače AADSSHLoginForLinux jako přechod na portálu.

K tomuto selhání dochází, když je stále nainstalované starší rozšíření virtuálního počítače AADLoginForLinux.

Řešením je odinstalovat starší rozšíření virtuálního počítače AADLoginForLinux z virtuálního počítače. Stav nového rozšíření virtuálního počítače AADSSHLoginForLinux se pak na portálu změní na Úspěšné zřízení.

Selhání instalace při použití proxy serveru HTTP

Rozšíření potřebuje připojení HTTP k instalaci balíčků a kontrole existence systémové identity. Běží v kontextu walinuxagent.service a vyžaduje změnu, aby agent věděl o nastavení proxy serveru. Otevřete /lib/systemd/system/walinuxagent.service soubor na cílovém počítači a přidejte následující řádek za [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"

Restartujte agenta (sudo systemctl restart walinuxagent). Teď to zkuste znovu.

Příkaz az ssh vm selže s chybou KeyError access_token

Pokud příkaz az ssh vm selže, používáte zastaralou verzi klienta Azure CLI.

Řešením je upgradovat klienta Azure CLI na verzi 2.21.0 nebo novější.

Připojení SSH je zavřené.

Po úspěšném přihlášení uživatele pomocí az login, připojení k virtuálnímu počítači prostřednictvím az ssh vm -ip <address> nebo az ssh vm --name <vm_name> -g <resource_group> může selhat s chybou Připojení uzavřeno <ip_address> port 22.

Jednou z příčin této chyby je, že uživatel není přiřazený k roli Přihlášení správce virtuálního počítače nebo Přihlášení uživatele virtuálního počítače v rámci oboru tohoto virtuálního počítače. V takovém případě je řešením přidat uživatele do jedné z těchto rolí Azure RBAC v rámci tohoto virtuálního počítače.

K této chybě může dojít také v případě, že je uživatel v požadované roli Azure RBAC, ale spravovaná identita přiřazená systémem je na virtuálním počítači zakázaná. V takovém případě proveďte tyto akce:

  1. Povolte spravovanou identitu přiřazenou systémem na virtuálním počítači.
  2. Povolit několik minut, než se uživatel pokusí připojit pomocí az ssh vm --ip <ip_address>.

Problémy s připojením ke škálovacím sadám virtuálních počítačů

Pokud instance škálovací sady škálovací sady virtuálních počítačů používají starý model, může selhat připojení virtuálních počítačů se škálovacími sadami.

Upgrade instancí škálovací sady na nejnovější model může problém vyřešit, zejména pokud se upgrade od instalace rozšíření Microsoft Entra Login neprovedlo. Upgrade instance použije pro jednotlivé instance standardní konfiguraci škálovací sady.

Příkazy AllowGroups nebo DenyGroups v sshd_config způsobit selhání prvního přihlášení pro uživatele Microsoft Entra

Pokud sshd_config obsahuje příkazy nebo příkazy AllowGroups DenyGroups , první přihlášení se pro uživatele Microsoft Entra nezdaří. Pokud se příkaz přidal po úspěšném přihlášení uživatelů, můžou se přihlásit.

Jedním zřešeních sshd_config ch DenyGroups AllowGroups

Dalším řešením je přechod AllowGroups do DenyGroups oddílu match user v sshd_config. Ujistěte se, že šablona shody vylučuje uživatele Microsoft Entra.

Získání oprávnění odepřeno při pokusu o připojení z Azure Shellu k virtuálnímu počítači s Linuxem Red Hat nebo Oracle 7.X

Verze serveru OpenSSH v cílovém virtuálním počítači 7.4 je příliš stará. Verze nekompatibilní s klientem OpenSSH verze 8.8. Další informace najdete v certifikátech RSA SHA256.

Alternativní řešení:

  • Přidání možnosti "PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com" v az ssh vm příkazu
az ssh vm -n myVM -g MyResourceGroup -- -A -o "PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com"
  • Přidání možnosti "PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com" do souboru /home/<user>/.ssh/config file.

Přidejte soubor "PubkeyAcceptedKeyTypes +ssh-rsa-cert-v01@openssh.com" do konfiguračního souboru klienta.

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

Další kroky