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ří sem:
- 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 |
Debian | Debian 9, Debian 10, Debian 11, Debian 12 |
openSUSE | openSUSE Leap 42.3, openSUSE Leap 15.1+ |
Oracle | Oracle Linux 8, Oracle Linux 9 |
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, všechny podverze po Ubuntu 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
aaadsshlogin-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
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 dlouhodobý virtuální počítač s Ubuntu Serverem 18.04 (LTS) v Azure s přihlášením Microsoft Entra:
- 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.
- V oblíbeném zobrazení vyberte Vytvořit v části Ubuntu Server 18.04 LTS.
- Na kartě Správa:
- Zaškrtněte políčko Přihlásit se pomocí Microsoft Entra ID .
- Ujistěte se, že je zaškrtnuté políčko Spravovaná identita přiřazená systémem.
- 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.
- Vytvořte skupinu prostředků spuštěním příkazu az group create.
- Vytvořte virtuální počítač spuštěním příkazu az vm create. Použijte podporovanou distribuci v podporované oblasti.
- 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 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í 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:
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í.
Vyberte Řízení přístupu (IAM) .
Výběrem možnosti Přidat>přiřazení role otevřete stránku Přidat přiřazení role.
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
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-id
nikoli 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:
- Přihlaste se do Centra pro správu Microsoft Entra jako alespoň cloudová aplikace Správa istrator.
- Přejděte k podnikovým aplikacím> identit.>
- 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
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 žá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 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čů:
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
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:
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.
Povolte spravovanou identitu přiřazenou systémem na virtuálním počítači:
az vm identity assign -g myResourceGroup -n myVm
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ů:
- Přihlaste se jako místní uživatel s oprávněními správce.
- 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žijesudo kill <pid>
pro všechny procesy relace, které oznámil předchozí příkaz. - Spusťte
sudo apt remove --purge aadlogin
(Ubuntu/Debian),sudo yum remove aadlogin
(RHEL) nebosudo zypper remove aadlogin
(openSUSE nebo SLES). - Pokud příkaz selže, vyzkoušejte nástroje nízké úrovně se zakázanými skripty:
- Pro Ubuntu/Debian spusťte
sudo dpkg --purge aadlogin
pří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. - Pro všechno ostatní spusťte
rpm -e --noscripts aadogin
.
- Pro Ubuntu/Debian spusťte
- 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:
- Odinstalujte rozšíření, které selhalo.
- Povolení spravované identity přiřazené systémem na virtuálním počítači Azure
- 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 "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:
- Povolte spravovanou identitu přiřazenou systémem na virtuálním počítači.
- 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 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"
vaz 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