Přihlášení k virtuálnímu počítači s Linuxem v Azure pomocí Microsoft Entra ID 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.

K přihlášení k virtuálním počítačům s Linuxem v Azure existuje mnoho výhod zabezpečení při použití ID Microsoft Entra s ověřováním založeným na certifikátech OpenSSH. Patří sem:

  • Pomocí přihlašovacích údajů Microsoft Entra se přihlaste k virtuálním počítačům Azure s Linuxem.
  • 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
CentOS CentOS 7, CentOS 8
Debian Debian 9, Debian 10, Debian 11
openSUSE openSUSE Leap 42.3, openSUSE Leap 15.1+
RedHat Enterprise Linux (RHEL) RHEL 7.4 až RHEL 7.9, RHEL 8.3+
SUSE Linux Enterprise Server (SLES) SLES 12, SLES 15.1+
Ubuntu Server Ubuntu Server 16.04 na Ubuntu Server 22.04

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

  • Globální Azure
  • Azure Government
  • Platforma 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ší. Verzi zjistíte spuštěním příkazu az --version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace rozhraní příkazového řádku 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. Pak nakonfigurujete přiřazení rolí Azure pro uživatele, kteří mají oprávnění přihlásit se 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

portál Azure

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

Pokud například chcete vytvořit virtuální počítač dlouhodobé podpory Ubuntu Serveru 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 k provedení kroků v tomto článku. Ve službě Cloud Shell jsou předinstalované obvyklé nástroje Azure a jsou nakonfigurované pro použití s vaší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:

  • Zvolte Vyzkoušet v pravém horním rohu bloku kódu.
  • Otevřete Cloud Shell ve vašem prohlížeči.
  • Zvolte Cloud Shell v nabídce v pravém horním rohu webu Azure Portal.

Pokud se rozhodnete nainstalovat a používat Azure CLI místně, musíte použít verzi 2.22.1 nebo novější. Verzi zjistíte spuštěním příkazu az --version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace rozhraní příkazového řádku 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 konfigurace a automatizace po nasazení na virtuálních počítačích Azure. 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 provisioningStateSucceeded 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 přístupu k datům virtuálního počítače Správa istrator nebo jakoukoli roli, která zahrnuje Microsoft.Authorization/roleAssignments/write akci, jako je například role řízení přístupu na základě role Správa istrator. Pokud ale používáte jinou roli než přístup k datům virtuálního počítače Správa istrator, doporučujeme přidat podmínku, která omezí oprávnění k vytváření přiřazení rolí.

  • Přihlášení virtuálního počítače Správa istrator: Uživatelé, kteří mají přiřazenou tuto roli, se mohou 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 umožnit přihlášení k virtuálnímu počítači přes SSH, musíte přiřadit roli přihlášení virtuálního počítače Správa istrator Login nebo Virtual Machine User Login 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í Microsoft Entra k virtuálnímu počítači přes SSH. Skupina osob, které řídí virtuální počítače, a skupina osob, které mohou k virtuálním počítačům přistupovat, jsou záměrně odděleny (a auditovány).

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:

Virtuální počítač Správa istrator přihlašovací role a role 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é.

portál Azure

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í virtuálního počítače Správa istrator nebopřihlášení uživatele virtuálního počítače
    Přiřadit přístup k Uživatel, skupina, instanční objekt nebo spravovaná identita

    Screenshot that shows the page for adding a role assignment.

Za chvíli se objektu zabezpečení přiřadí role ve vybraném oboru.

Azure Cloud Shell

Následující příklad pomocí příkazu az role assignment create přiřadí virtuálnímu počítači roli Správa istrator Login 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ň cloudová aplikace Správa istrator.
  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.

Dalším způsobem, jak ověřit, že je to přes Graph PowerShell:

  1. Pokud jste to ještě neudělali, nainstalujte sadu Graph PowerShell SDK .

  2. Zadejte příkaz Connect-MgGraph -Scopes "ServicePrincipalEndpoint.ReadWrite.All","Application.ReadWrite.All".

  3. Přihlaste se pomocí globálního účtu Správa istrator.

  4. Vyjádření souhlasu s výzvou, která žádá o vaše oprávnění.

  5. Zadejte příkaz Get-MgServicePrincipal -ConsistencyLevel eventual -Search '"DisplayName:Microsoft Azure Linux Virtual Machine Sign-In"'.

    Pokud tento příkaz nemá žádný výstup a vrátí vás do příkazového řádku PowerShellu, můžete instanční objekt vytvořit pomocí následujícího příkazu Graph PowerShellu: New-MgServicePrincipal -AppId ce6ff14a-7fdc-4685-bbe0-f6afdfcfa8e0

    Úspěšný výstup zobrazí, že se vytvořilo ID aplikace a název aplikace Azure Linux VM Sign-In.

  6. Odhlaste se z Graph PowerShellu pomocí následujícího příkazu: Disconnect-MgGraph.

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 

Potom 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 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 virtuální počítač Správa istrator. Pokud je vašemu uživatelskému účtu přiřazena role přihlášení virtuálního počítače Správa istrator, můžete pomocí příkazu sudo spouštět 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á uživatelská práva virtuálního počítače Správa istrator nebo VM. 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 na úrovni skupiny prostředků práva virtuálního počítače Správa istrator. 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í lze 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 virtuálního počítače Správa istrator, úspěšně připojí SSH k virtuálnímu počítači s Linuxem, budou moct spustit 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ů

S využitím Azure Policy:

  • 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ělují roli přihlášení virtuálního počítače Správa istrator 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 CentOS) 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í.

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 "Připojení ion uzavřeno <ip_address> port 22"

Jednou z příčin této chyby je, že uživatel není přiřazený k virtuálnímu počítači Správa istrator přihlašovací roli nebo roli Přihlášení uživatele virtuálního počítače v rámci 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>.

Připojení problémů se škálovacími sadami 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 AllowGroupsDenyGroups , 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 DenyGroupsAllowGroups

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, Oracle/Centos 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