Megosztás a következőn keresztül:


Bejelentkezés Linux rendszerű virtuális gépre az Azure-ban a Microsoft Entra ID és az OpenSSH használatával

A Linux rendszerű virtuális gépek (VM-ek) biztonságának javítása érdekében integrálhatja a Microsoft Entra-hitelesítést. Mostantól a Microsoft Entra ID-t használhatja alapszintű hitelesítési platformként, valamint egy hitelesítésszolgáltatót, a Microsoft Entra ID és az OpenSSH tanúsítványalapú hitelesítés használatával pedig SSH-t hozhat létre Linux rendszerű virtuális gépekre. Ez a funkció lehetővé teszi a szervezetek számára, hogy azure-beli szerepköralapú hozzáférés-vezérlési (RBAC) és feltételes hozzáférési szabályzatokkal kezeljék a virtuális gépekhez való hozzáférést.

Ez a cikk bemutatja, hogyan hozhat létre és konfigurálhat Linux rendszerű virtuális gépeket, és hogyan jelentkezhet be a Microsoft Entra ID-val OpenSSH-tanúsítványalapú hitelesítéssel.

A Microsoft Entra ID openSSH-tanúsítványalapú hitelesítéssel való használatának számos biztonsági előnye van a Linux rendszerű virtuális gépekre való bejelentkezéshez az Azure-ban. Ezek közé tartoznak a következők:

  • A Microsoft Entra hitelesítő adataival jelentkezzen be Azure Linux rendszerű virtuális gépekre.
  • SSH-kulcsalapú hitelesítést kérhet anélkül, hogy SSH-kulcsokat kellene terjesztenie a felhasználóknak, vagy nyilvános SSH-kulcsokat kellene kiépítenie a telepített Azure Linux rendszerű virtuális gépeken. Ez a tapasztalat sokkal egyszerűbb, mint aggódnia a elavult SSH nyilvános kulcsok elszórása miatt, amelyek jogosulatlan hozzáférést okozhatnak.
  • Csökkentse a helyi rendszergazdai fiókokra, a hitelesítő adatok ellopására és a gyenge hitelesítő adatokra való támaszkodást.
  • A Linux rendszerű virtuális gépek védelmének elősegítése a Microsoft Entra ID jelszó-összetettségi és jelszó-élettartam-szabályzatainak konfigurálásával.
  • Az RBAC használatával adja meg, hogy ki jelentkezhet be a virtuális gépre normál felhasználóként vagy rendszergazdai jogosultságokkal. Amikor a felhasználók csatlakoznak a csapathoz, frissítheti a virtuális gép Azure RBAC-szabályzatát, hogy szükség szerint hozzáférést biztosítson. Amikor az alkalmazottak elhagyják a szervezetet, és felhasználói fiókjaik le vannak tiltva vagy eltávolítva a Microsoft Entra-azonosítóból, már nem férnek hozzá az erőforrásokhoz.
  • A feltételes hozzáféréssel konfigurálja a szabályzatokat úgy, hogy többtényezős hitelesítést igényeljenek, vagy megkövetelje az ügyféleszköz felügyeletét (például a megfelelő vagy a Microsoft Entra hibrid csatlakoztatását), mielőtt az SSH-t linuxos virtuális gépekre használhatja.
  • Az Azure üzembe helyezési és naplózási szabályzatainak használatával megkövetelheti a Microsoft Entra bejelentkezését Linux rendszerű virtuális gépeken, és megjelölheti a nem jóváhagyott helyi fiókokat.

Linux rendszerű virtuális gépekre való bejelentkezés a Microsoft Entra-azonosítóval működik az Active Directory összevonási szolgáltatások (AD FS) használó ügyfelek számára.

Támogatott Linux-disztribúciók és Azure-régiók

Jelenleg a következő Linux-disztribúciók támogatottak egy támogatott régióban történő üzembe helyezéshez:

Elosztás Verzió
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+
Jóslat Oracle Linux 8, Oracle Linux 9
RedHat Enterprise Linux (RHEL) RHEL 7.4– RHEL 7.9, RHEL 8.3+, RHEL 9.0+
Sziklás Sziklás 8, Sziklás 9
SUSE Linux Enterprise Server (SLES) SLES 12, SLES 15.1+
Ubuntu Ubuntu 16.04– Ubuntu 24.04

A szolgáltatás jelenleg a következő Azure-régiókat támogatja:

  • Azure Global
  • Azure Government
  • A 21Vianet által üzemeltetett Microsoft Azure

Az Azure Kubernetes Service-fürtökön az Azure CLI SSH-bővítményének használata nem támogatott. További információ: Támogatási szabályzatok az AKS-hez.

Ha az Azure CLI helyi telepítését és használatát választja, annak a 2.22.1-es vagy újabb verziónak kell lennie. Futtassa az --version a verziót. Ha telepítenie vagy frissítenie kell, tekintse meg az Azure CLI telepítését.

Jegyzet

Ez a funkció az Azure Arc-kompatibilis kiszolgálókhoz is elérhető.

A Microsoft Entra-azonosítóval való bejelentkezés követelményeinek teljesítése OpenSSH-tanúsítványalapú hitelesítéssel

Ahhoz, hogy a Microsoft Entra SSH-tanúsítványalapú hitelesítéssel engedélyezze a Microsoft Entra-bejelentkezést linuxos virtuális gépekhez az Azure-ban, mindenképpen feleljen meg a következő hálózati, virtuális gépi és ügyféloldali (SSH-ügyfél) követelményeknek.

Hálózat

A virtuálisgép-hálózat konfigurációjának engedélyeznie kell a következő végpontokhoz való kimenő hozzáférést a 443-as TCP-porton keresztül.

Azure Global:

  • https://packages.microsoft.com: Csomagtelepítéshez és -frissítésekhez.
  • http://169.254.169.254: Azure Instance Metadata Service-végpont.
  • https://login.microsoftonline.com: PAM-alapú (csatlakoztatható hitelesítési modulok) hitelesítési folyamatokhoz.
  • https://pas.windows.net: Azure RBAC-folyamatokhoz.

Azure Government:

  • https://packages.microsoft.com: Csomagtelepítéshez és -frissítésekhez.
  • http://169.254.169.254: Azure Instance Metadata Service-végpont.
  • https://login.microsoftonline.us: PAM-alapú hitelesítési folyamatokhoz.
  • https://pasff.usgovcloudapi.net: Azure RBAC-folyamatokhoz.

A 21Vianet által üzemeltetett Microsoft Azure:

  • https://packages.microsoft.com: Csomagtelepítéshez és -frissítésekhez.
  • http://169.254.169.254: Azure Instance Metadata Service-végpont.
  • https://login.chinacloudapi.cn: PAM-alapú hitelesítési folyamatokhoz.
  • https://pas.chinacloudapi.cn: Azure RBAC-folyamatokhoz.

Virtuális gép

Győződjön meg arról, hogy a virtuális gép a következő funkciókkal van konfigurálva:

  • Rendszer által hozzárendelt felügyelt identitás. Ez a beállítás automatikusan ki lesz választva, amikor az Azure Portal használatával hoz létre virtuális gépeket, és kiválasztja a Microsoft Entra bejelentkezési lehetőséget. A rendszer által hozzárendelt felügyelt identitásokat egy új vagy meglévő virtuális gépen is engedélyezheti az Azure CLI használatával.
  • aadsshlogin és aadsshlogin-selinux (szükség szerint). Ezek a csomagok az AADSSHLoginForLinux virtuálisgép-bővítménnyel vannak telepítve. A bővítmény akkor lesz telepítve, ha az Azure Portal vagy az Azure CLI használatával hoz létre virtuális gépeket, és engedélyezi a Microsoft Entra-bejelentkezést (Felügyelet lap).

Ügyfél

Győződjön meg arról, hogy az ügyfél megfelel a következő követelményeknek:

  • SSH-ügyféltámogatás OpenSSH-alapú tanúsítványokhoz hitelesítéshez. A követelmény teljesítéséhez használhatja az Azure CLI-t (2.21.1 vagy újabb verzió) az OpenSSH-val (a Windows 10 1803-es vagy újabb verziójában) vagy az Azure Cloud Shellrel.

  • SSH-bővítmény az Azure CLI-hez. Ezt a bővítményt a következővel az extension add --name sshtelepítheti: . Az Azure Cloud Shell használatakor nem kell telepítenie ezt a bővítményt, mert az előre telepítve van.

    Ha nem az Azure CLI-t vagy az OpenSSH-tanúsítványokat támogató Azure Cloud Shellt használja, akkor is az Azure CLI-t kell használnia az SSH-kiterjesztéssel a rövid élettartamú SSH-tanúsítványok és opcionálisan egy konfigurációs fájl lekéréséhez. Ezután használhatja a konfigurációs fájlt az SSH-ügyféllel.

  • TCP-kapcsolat az ügyfélről a virtuális gép nyilvános vagy privát IP-címéhez. (A ProxyCommand vagy az SSH továbbítása egy kapcsolattal rendelkező gépre is működik.)

Fontos

A PuTTY-alapú SSH-ügyfelek mostantól támogatják az OpenSSH-tanúsítványokat, és a Microsoft Entra OpenSSH tanúsítványalapú hitelesítéssel is bejelentkezhetnek.

Microsoft Entra-bejelentkezés engedélyezése Linux rendszerű virtuális gépekhez az Azure-ban

Ha Microsoft Entra-bejelentkezést szeretne használni linuxos virtuális géphez az Azure-ban, először engedélyeznie kell a Microsoft Entra bejelentkezési lehetőséget a Linux rendszerű virtuális géphez. Ezután azure-szerepkör-hozzárendeléseket konfigurálhat azokhoz a felhasználókhoz, akik jogosultak bejelentkezni a virtuális gépre. Végül használja az OpenSSH-t támogató SSH-ügyfelet, például az Azure CLI-t vagy az Azure Cloud Shellt, hogy SSH-t használjon a Linux rendszerű virtuális gépre.

A Microsoft Entra-bejelentkezést kétféleképpen engedélyezheti Linux rendszerű virtuális gépéhez:

  • Az Azure Portal felülete Linux rendszerű virtuális gép létrehozásakor
  • Az Azure Cloud Shell élménye Linux rendszerű virtuális gép létrehozásakor vagy meglévők használatakor

Azure Portal

A Microsoft Entra-bejelentkezést bármely támogatott Linux-disztribúcióhoz engedélyezheti az Azure Portal használatával.

Ha például egy Ubuntu Server 18.04 hosszú távú támogatási (LTS) virtuális gépet szeretne létrehozni az Azure-ban a Microsoft Entra bejelentkezésével:

  1. Jelentkezzen be az Azure Portalra egy olyan fiókkal, amely rendelkezik hozzáféréssel a virtuális gépek létrehozásához, majd válassza az + Erőforrás létrehozása lehetőséget.
  2. Válassza a Létrehozás lehetőséget az Ubuntu Server 18.04 LTS alatt a Népszerű nézetben.
  3. A Felügyelet lapon:
    1. Jelölje be a Bejelentkezés a Microsoft Entra-azonosítóval jelölőnégyzetet.
    2. Győződjön meg arról, hogy a rendszer által hozzárendelt felügyelt identitás jelölőnégyzet be van jelölve.
  4. Tekintse át a virtuális gép létrehozásának további élményét. Létre kell hoznia egy rendszergazdai fiókot felhasználónévvel és jelszóval vagy nyilvános SSH-kulccsal.

Azure Cloud Shell

Az Azure Cloud Shell egy ingyenes, interaktív rendszerhéj, amellyel a cikkben ismertetett lépéseket futtathatja. A gyakori Azure-eszközök előre vannak telepítve és konfigurálva a Cloud Shellben, hogy használhassa a fiókjával. Csak a Másolás gombra kattintva másolja a kódot, illessze be a Cloud Shellbe, majd az Enter billentyűt választva futtassa.

A Cloud Shellt többféleképpen is megnyithatja:

  • A kódblokk jobb felső sarkában válassza a Kipróbálás lehetőséget.
  • Nyissa meg a Cloud Shellt a böngészőben.
  • Válassza a Cloud Shell gombot az Azure Portal jobb felső sarkában található menüben.

Ha úgy dönt, hogy helyileg telepíti és használja az Azure CLI-t, ebben a cikkben a 2.22.1-es vagy újabb verziót kell használnia. Futtassa az --version a verziót. Ha telepítenie vagy frissítenie kell, tekintse meg az Azure CLI telepítését.

  1. Hozzon létre egy erőforráscsoportot az az group create futtatásával.
  2. Hozzon létre egy virtuális gépet az az vm create futtatásával. Támogatott disztribúció használata egy támogatott régióban.
  3. Telepítse a Microsoft Entra bejelentkezési virtuálisgép-bővítményt az az vm extension set használatával.

Az alábbi példa üzembe helyez egy virtuális gépet, majd telepíti a bővítményt, hogy engedélyezze a Microsoft Entra bejelentkezését linuxos virtuális gépeken. A virtuálisgép-bővítmények olyan kis alkalmazások, amelyek üzembe helyezés utáni konfigurációs és automatizálási feladatokat biztosítanak az Azure-beli virtuális gépeken. Szükség szerint testre szabhatja a példát a tesztelési követelmények támogatásához.

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

A virtuális gép létrehozása és az erőforrások támogatása néhány percet vesz igénybe.

Az AADSSHLoginForLinux bővítmény telepíthető egy meglévő (támogatott disztribúciós) Linux rendszerű virtuális gépre egy futó virtuálisgép-ügynökkel a Microsoft Entra-hitelesítés engedélyezéséhez. Ha ezt a bővítményt egy korábban létrehozott virtuális gépre telepíti, a virtuális gépnek legalább 1 GB memóriával kell rendelkeznie, vagy a telepítés sikertelen lesz.

Az provisioningState érték Succeeded akkor jelenik meg, ha a bővítmény sikeresen telepítve van a virtuális gépen. A bővítmény telepítéséhez a virtuális gépnek rendelkeznie kell egy futó virtuálisgép-ügynökkel .

Szerepkör-hozzárendelések konfigurálása a virtuális géphez

Most, hogy létrehozta a virtuális gépet, az alábbi Azure-szerepkörök egyikét kell hozzárendelnie annak meghatározásához, hogy ki tud bejelentkezni a virtuális gépre. A szerepkörök hozzárendeléséhez rendelkeznie kell a virtuális gép adathozzáférési rendszergazdái szerepkörével, vagy bármely olyan szerepkörével, amely tartalmazza a Microsoft.Authorization/roleAssignments/write műveletet, például a szerepköralapú hozzáférés-vezérlési rendszergazdai szerepkört. Ha azonban más szerepkört használ, mint a virtuálisgép-adathozzáférési rendszergazda, javasoljuk, hogy adjon hozzá egy feltételt, amely csökkenti a szerepkör-hozzárendelések létrehozásának engedélyét.

  • Virtuálisgép-rendszergazdai bejelentkezés: A szerepkörrel rendelkező felhasználók rendszergazdai jogosultságokkal jelentkezhetnek be egy Azure-beli virtuális gépre.
  • Virtuális gép felhasználói bejelentkezése: A szerepkörrel rendelkező felhasználók bejelentkezhetnek egy rendszeres felhasználói jogosultságokkal rendelkező Azure-beli virtuális gépre.

Ahhoz, hogy egy felhasználó SSH-n keresztül jelentkezzen be egy virtuális gépre, a virtuális gép rendszergazdai bejelentkezési vagy virtuálisgép-felhasználói bejelentkezési szerepkörét kell hozzárendelnie ahhoz az erőforráscsoporthoz, amely a virtuális gépet és annak társított virtuális hálózatát, hálózati adapterét, nyilvános IP-címét vagy terheléselosztó-erőforrásait tartalmazza.

A virtuális gép tulajdonosi vagy közreműködői szerepkörrel rendelkező Azure-felhasználó nem rendelkezik automatikusan jogosultságokkal a Microsoft Entra számára, hogy SSH-val jelentkezzen be a virtuális gépre. Szándékos (és auditált) elkülönítés van a virtuális gépeket vezérlő személyek és a virtuális gépekhez hozzáférő személyek halmaza között.

A virtuális gépek szerepkör-hozzárendeléseinek kétféleképpen konfigurálhatók:

  • Az Azure Portal felülete
  • Azure Cloud Shell-élmény

Jegyzet

A virtuális gép rendszergazdai bejelentkezési és virtuálisgép-felhasználói bejelentkezési szerepkörei a felügyeleti csoport, az előfizetés, az erőforráscsoport vagy az erőforrás hatókörében használhatók dataActions és rendelhetők hozzá. Javasoljuk, hogy a szerepköröket a felügyeleti csoport, az előfizetés vagy az erőforráscsoport szintjén rendelje hozzá, és ne az egyes virtuális gépek szintjén. Ez a gyakorlat elkerüli az Előfizetésenkénti Azure-szerepkör-hozzárendelési korlát elérésének kockázatát.

Azure Portal

Szerepkör-hozzárendelések konfigurálása Microsoft Entra ID-kompatibilis Linux rendszerű virtuális gépekhez:

  1. Erőforráscsoport esetén válassza ki azt az erőforráscsoportot, amely a virtuális gépet és annak társított virtuális hálózatát, hálózati adapterét, nyilvános IP-címét vagy terheléselosztó-erőforrását tartalmazza.

  2. Válassza a Hozzáférés-vezérlés (IAM) lehetőséget.

  3. Válassza a Szerepkör-hozzárendelés hozzáadása>lehetőséget a Szerepkör-hozzárendelés hozzáadása lap megnyitásához.

  4. Rendelje hozzá a következő szerepkört. A részletes lépésekért lásd : Azure-szerepkörök hozzárendelése az Azure Portal használatával.

    Beállítás Érték
    Szerep Virtuálisgép-rendszergazdai bejelentkezés vagy virtuálisgép-felhasználói bejelentkezés
    Hozzáférés hozzárendelése Felhasználó, csoport, szolgáltatásnév vagy felügyelt identitás

    A szerepkör-hozzárendelés hozzáadására szolgáló lap képernyőképe.

Néhány pillanat múlva a rendszer a biztonsági taghoz rendeli hozzá a szerepkört a kiválasztott hatókörben.

Azure Cloud Shell

Az alábbi példa az az role assignment create használatával rendeli hozzá a virtuális gép rendszergazdai bejelentkezési szerepkörét a virtuális géphez az aktuális Azure-felhasználóhoz. A jelenlegi Azure-fiók felhasználónevét az az account show használatával szerezheti be, és az előző lépésben létrehozott virtuális gépre állítja a hatókört az az virtuálisgép-megjelenítés használatával.

A hatókört erőforráscsoport vagy előfizetés szintjén is hozzárendelheti. A normál Azure RBAC-öröklési engedélyek érvényesek.

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

Jegyzet

Ha a Microsoft Entra tartomány és a bejelentkezési felhasználónév tartománya nem egyezik meg, a felhasználói fiók objektumazonosítóját nem csak a felhasználónév --assigneehasználatával --assignee-object-idkell megadnia. A felhasználói fiók objektumazonosítóját az az ad felhasználói lista használatával szerezheti be.

Az Azure RBAC Azure-előfizetési erőforrásokhoz való hozzáférésének kezelésével kapcsolatos további információkért tekintse meg az Azure-szerepkörök hozzárendelésének lépéseit.

Az Azure CLI SSH-bővítményének telepítése

Ha Az Azure Cloud Shellt használja, nincs szükség más beállításra, mert az Azure CLI minimálisan szükséges verziója és az Azure CLI SSH-bővítménye már szerepel a Cloud Shell-környezetben.

Futtassa a következő parancsot az Azure CLI SSH-bővítményének hozzáadásához:

az extension add --name ssh

A bővítményhez szükséges minimális verzió a 0.1.4. Ellenőrizze a telepített verziót az alábbi paranccsal:

az extension show --name ssh

Feltételes hozzáférési szabályzatok kényszerítése

A Microsoft Entra-bejelentkezéssel engedélyezett feltételes hozzáférési szabályzatokat kényszerítheti ki, például:

  • Többtényezős hitelesítést igényel.
  • Megfelelő vagy Microsoft Entra hibrid csatlakoztatott eszköz megkövetelése az SSH-ügyfelet futtató eszközhöz.
  • Kockázatok keresése a Linux rendszerű virtuális gépekhez való hozzáférés engedélyezése előtt az Azure-ban.

A feltételes hozzáférési szabályzatban megjelenő alkalmazást Azure Linux rendszerű virtuálisgép-bejelentkezésnek nevezzük.

Jegyzet

Az SSH-ügyfelet futtató eszközön eszközmegfelelőséget vagy Microsoft Entra hibrid csatlakozást igénylő feltételes hozzáférési szabályzat kényszerítése csak a Windowson és macOS rendszeren futó Azure CLI-vel működik. Ez nem támogatott, ha Az Azure CLI-t Linuxon vagy Azure Cloud Shellen használja.

Hiányzó alkalmazás

Ha az Azure Linux rendszerű virtuális gép bejelentkezési alkalmazása hiányzik a feltételes hozzáférésből, győződjön meg arról, hogy az alkalmazás nincs a bérlőben:

  1. Jelentkezzen be a Microsoft Entra felügyeleti központba legalább felhőalkalmazás-rendszergazdaként.
  2. Keresse meg az Identity>Applications>Enterprise-alkalmazásokat.
  3. Távolítsa el a szűrőket az összes alkalmazás megtekintéséhez és a virtuális gép kereséséhez. Ha ennek eredményeképpen nem látja a Microsoft Azure Linux rendszerű virtuális gép bejelentkezését, a szolgáltatásnév hiányzik a bérlőből.

Bejelentkezés Microsoft Entra felhasználói fiókkal az SSH-ba a Linux rendszerű virtuális gépre

Bejelentkezés az Azure CLI használatával

Adja meg az logina elemet. Ez a parancs megnyitja a böngészőablakot, ahol a Microsoft Entra-fiókjával jelentkezhet be.

az login 

Ezután írja be a következőt az ssh vm: Az alábbi példa automatikusan feloldja a virtuális gép megfelelő IP-címét.

az ssh vm -n myVM -g AzureADLinuxVM

Ha a rendszer kéri, adja meg a Microsoft Entra bejelentkezési hitelesítő adatait a bejelentkezési oldalon, végezzen többtényezős hitelesítést, és/vagy feleljen meg az eszközellenőrzéseknek. A rendszer csak akkor kéri, ha Ön az Azure CLI-munkamenet, amely még nem felel meg a szükséges feltételes hozzáférési feltételeknek. Zárja be a böngészőablakot, térjen vissza az SSH-kéréshez, és automatikusan csatlakozik a virtuális géphez.

Most már bejelentkezett a Linux rendszerű virtuális gépre a hozzárendelt szerepkör-engedélyekkel, például a virtuálisgép-felhasználóval vagy a virtuálisgép-rendszergazdával. Ha a felhasználói fiókjához virtuálisgép-rendszergazdai bejelentkezési szerepkör van hozzárendelve, a sudo használatával futtathat gyökérjogjogokat igénylő parancsokat.

Bejelentkezés az Azure Cloud Shell használatával

Az Azure Cloud Shell használatával anélkül csatlakozhat virtuális gépekhez, hogy helyi telepítésre lenne szüksége az ügyfélszámítógépen. Indítsa el a Cloud Shellt az Azure Portal jobb felső sarkában található felületikon kiválasztásával.

A Cloud Shell automatikusan csatlakozik egy munkamenethez a bejelentkezett felhasználó kontextusában. Most futtassa az login újra, és haladjon végig az interaktív bejelentkezési folyamaton:

az login

Ezután a normál az ssh vm parancsokkal csatlakozhat a virtuális gép nevével és erőforráscsoportával vagy IP-címével:

az ssh vm -n myVM -g AzureADLinuxVM

Jegyzet

Az eszközmegfelelőséget vagy a Microsoft Entra hibrid csatlakozást igénylő feltételes hozzáférési szabályzatok kikényszerítése nem támogatott az Azure Cloud Shell használatakor.

Bejelentkezés a Microsoft Entra szolgáltatásnévvel az SSH-ba a Linux rendszerű virtuális gépre

Az Azure CLI felhasználói fiók helyett szolgáltatásnévvel támogatja a hitelesítést. Mivel a szolgáltatásnevek nincsenek egy adott felhasználóhoz kötve, az ügyfelek SSH-ra használhatják őket egy virtuális gépre, hogy támogassák az esetleges automatizálási forgatókönyveket. A szolgáltatásnévhez virtuálisgép-rendszergazdai vagy virtuálisgép-felhasználói jogosultságokkal kell rendelkeznie. Engedélyek hozzárendelése az előfizetés vagy az erőforráscsoport szintjén.

Az alábbi példa virtuálisgép-rendszergazdai jogosultságokat rendel a szolgáltatásnévhez az erőforráscsoport szintjén. Cserélje le a helyőrzőket a szolgáltatásnév objektumazonosítójára, az előfizetés azonosítójára és az erőforráscsoport nevére.

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

Az alábbi példában hitelesítheti magát az Azure CLI-ben a szolgáltatásnév használatával. További információ: Bejelentkezés az Azure CLI-be szolgáltatásnévvel.

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

Ha a szolgáltatásnévvel végzett hitelesítés befejeződött, a virtuális géphez való csatlakozáshoz használja a normál Azure CLI SSH-parancsokat:

az ssh vm -n myVM -g AzureADLinuxVM

Az OpenSSH-t támogató SSH-ügyfelekhez használható SSH-konfiguráció exportálása

Az OpenSSH-tanúsítvány és -konfiguráció exportálását a Microsoft Entra AZONOSÍTÓval rendelkező Azure Linux rendszerű virtuális gépekre való bejelentkezés támogatja. Ez azt jelenti, hogy az OpenSSH-alapú tanúsítványokat támogató SSH-ügyfeleket használhatja a Microsoft Entra-azonosítón keresztüli bejelentkezéshez. Az alábbi példa exportálja a virtuális géphez rendelt összes IP-cím konfigurációját:

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

Másik lehetőségként exportálhatja a konfigurációt csak az IP-cím megadásával. Cserélje le az alábbi példában szereplő IP-címet a virtuális gép nyilvános vagy privát IP-címére. (Saját kapcsolatot kell létesítenie a privát IP-címekhez.) Ebben az ssh config -h a parancsban segítséget kaphat.

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

Ezután normál OpenSSH-használattal csatlakozhat a virtuális géphez. A kapcsolat bármely OpenSSH-t használó SSH-ügyfélen keresztül elvégezhető.

Sudo futtatása Microsoft Entra-bejelentkezéssel

Miután a virtuálisgép-rendszergazdai szerepkörrel rendelkező felhasználók sikeresen SSH-t kaptak egy Linux rendszerű virtuális géphez, más beavatkozási vagy hitelesítési követelmény nélkül futtathatják a sudo-t. A virtuálisgép-felhasználói szerepkörhöz hozzárendelt felhasználók nem fogják tudni futtatni a sudo parancsot.

Csatlakozás virtuálisgép-méretezési csoportokban lévő virtuális gépekhez

A virtuálisgép-méretezési csoportok támogatottak, de a lépések kissé eltérnek a virtuálisgép-méretezési csoport virtuális gépeinek engedélyezéséhez és a virtuális gépekhez való csatlakozáshoz:

  1. Hozzon létre egy virtuálisgép-méretezési csoportot, vagy válasszon egy már létezőt. Rendszer által hozzárendelt felügyelt identitás engedélyezése a virtuálisgép-méretezési csoporthoz:

    az vmss identity assign --name myVMSS --resource-group AzureADLinuxVM
    
  2. Telepítse a Microsoft Entra bővítményt a virtuálisgép-méretezési csoportra:

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

A virtuálisgép-méretezési csoportok általában nem rendelkeznek nyilvános IP-címekkel. Egy másik gépről kell csatlakoznia hozzájuk, amely elérheti az Azure-beli virtuális hálózatukat. Ez a példa bemutatja, hogyan használhatja egy virtuális gép magánhálózati IP-címét egy virtuálisgép-méretezési csoportban egy ugyanazon virtuális hálózatban lévő gépről való csatlakozáshoz:

az ssh vm --ip 10.11.123.456

Jegyzet

A virtuálisgép-méretezési csoport virtuális gépének IP-címei nem határozhatók meg automatikusan a kapcsolók és --name a --resource-group kapcsolók használatával.

Migrálás az előző (előzetes verzió) verzióról

Ha a Linuxhoz készült Microsoft Entra-bejelentkezés előző verzióját használja, amely az eszközkód-folyamaton alapult, hajtsa végre az alábbi lépéseket az Azure CLI használatával:

  1. Távolítsa el az AADLoginForLinux bővítményt a virtuális gépen:

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

    Jegyzet

    A bővítmény eltávolítása sikertelen lehet, ha a virtuális gépen jelenleg bejelentkezett Microsoft Entra-felhasználók vannak. Győződjön meg arról, hogy az összes felhasználót kijelentkezteti a rendszer.

  2. A rendszer által hozzárendelt felügyelt identitás engedélyezése a virtuális gépen:

    az vm identity assign -g myResourceGroup -n myVm
    
  3. Telepítse az AADSSHLoginForLinux bővítményt a virtuális gépre:

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

A szabványoknak való megfelelés és a megfelelőség értékelése az Azure Policy használatával

Az Azure Policy használatával:

  • Győződjön meg arról, hogy a Microsoft Entra bejelentkezés engedélyezve van az új és a meglévő Linux rendszerű virtuális gépeken.
  • A környezet megfelelőségének felmérése nagy léptékben egy megfelelőségi irányítópulton.

Ezzel a képességgel számos kényszerítési szintet használhat. Megjelölhet olyan új és meglévő Linux rendszerű virtuális gépeket a környezetében, amelyeken nincs engedélyezve a Microsoft Entra-bejelentkezés. Az Azure Policy használatával a Microsoft Entra bővítményt olyan új Linux rendszerű virtuális gépeken is üzembe helyezheti, amelyeken nincs engedélyezve a Microsoft Entra-bejelentkezés, valamint a meglévő Linux rendszerű virtuális gépek szervizelését is ugyanarra a szabványra.

Ezen képességek mellett az Azure Policy használatával észlelheti és megjelölheti azokat a Linux rendszerű virtuális gépeket, amelyeken nem jóváhagyott helyi fiókokat hoztak létre a gépükön. További információért tekintse át az Azure Policyt.

Bejelentkezési problémák elhárítása

Az alábbi szakaszokban kijavíthatja azokat a gyakori hibákat, amelyek akkor fordulhatnak elő, ha SSH-t próbál meg használni a Microsoft Entra hitelesítő adataival.

Nem sikerült lekérni a jogkivonatot a helyi gyorsítótárból

Ha olyan üzenetet kap, amely szerint a jogkivonat nem kérhető le a helyi gyorsítótárból, újra kell futnia az login , és át kell haladnia egy interaktív bejelentkezési folyamaton. Tekintse át az Azure Cloud Shell használatával történő bejelentkezésről szóló szakaszt.

Hozzáférés megtagadva: Az Azure-szerepkör nincs hozzárendelve

Ha "Az Azure-szerepkör nincs hozzárendelve" hibaüzenet jelenik meg az SSH-üzenetben, ellenőrizze, hogy konfigurálta-e az Azure RBAC-szabályzatokat a virtuális géphez, amely vagy a virtuálisgép-rendszergazdai bejelentkezési szerepkört vagy a virtuálisgép-felhasználói bejelentkezési szerepkört adja a felhasználónak. Ha problémákat tapasztal az Azure-szerepkör-hozzárendelésekkel kapcsolatban, olvassa el az Azure RBAC hibaelhárítása című cikket.

A régi (AADLoginForLinux) bővítmény törlésével kapcsolatos problémák

Ha az eltávolítási szkriptek sikertelenek, előfordulhat, hogy a bővítmény áttűnési állapotba kerül. Ha ez történik, a bővítmény elhagyhatja azokat a csomagokat, amelyeket az eltávolítás során el kell távolítania. Ilyen esetekben jobb, ha manuálisan eltávolítja a régi csomagokat, majd megpróbálja futtatni a az vm extension delete parancsot.

Régi csomagok eltávolítása:

  1. Jelentkezzen be helyi felhasználóként rendszergazdai jogosultságokkal.
  2. Győződjön meg arról, hogy nincsenek bejelentkezett Microsoft Entra-felhasználók. Hívja meg a who -u parancsot, hogy lássa, ki van bejelentkezve. Ezután használja sudo kill <pid> az összes munkamenet-folyamathoz, amelyet az előző parancs jelentett.
  3. Futtassa sudo apt remove --purge aadlogin (Ubuntu/Debian), sudo yum remove aadlogin (RHEL) vagy sudo zypper remove aadlogin (openSUSE vagy SLES).
  4. Ha a parancs sikertelen, próbálkozzon az alacsony szintű eszközökkel, és tiltsa le a szkripteket:
    1. Ubuntu/Debian esetén futtassa a .sudo dpkg --purge aadlogin Ha a szkript miatt továbbra is sikertelen, törölje a /var/lib/dpkg/info/aadlogin.prerm fájlt, és próbálkozzon újra.
    2. Minden máshoz futtassa rpm -e --noscripts aadogin.
  5. Ismételje meg a 3–4. lépést a csomag aadlogin-selinuxesetében.

Bővítménytelepítési hibák

Az AADSSHLoginForLinux virtuálisgép-bővítmény telepítése a meglévő számítógépekre az alábbi ismert hibakódok egyikével meghiúsulhat.

Nem nulla kilépési kód 22

Ha a 22-es kilépési kód jelenik meg, az AADSSHLoginForLinux virtuálisgép-bővítmény állapota áttűnésként jelenik meg a portálon.

Ez a hiba azért fordul elő, mert rendszer által hozzárendelt felügyelt identitásra van szükség.

A megoldás a következő:

  1. Távolítsa el a sikertelen bővítményt.
  2. Rendszer által hozzárendelt felügyelt identitás engedélyezése az Azure-beli virtuális gépen.
  3. Futtassa újra a bővítménytelepítési parancsot.

Nem nulla kilépési kód 23

Ha a 23-as kilépési kód jelenik meg, az AADSSHLoginForLinux virtuálisgép-bővítmény állapota áttűnésként jelenik meg a portálon.

Ez a hiba akkor fordul elő, ha a régebbi AADLoginForLinux virtuálisgép-bővítmény még telepítve van.

A megoldás a régebbi AADLoginForLinux virtuálisgép-bővítmény eltávolítása a virtuális gépről. Az új AADSSHLoginForLinux virtuálisgép-bővítmény állapota ezután a portálon sikeres üzembe helyezésre változik.

Telepítési hibák HTTP-proxy használatakor

A bővítménynek HTTP-kapcsolatra van szüksége a csomagok telepítéséhez és a rendszeridentitás meglétének ellenőrzéséhez. A rendszer a környezetben walinuxagent.service fut, és módosítást igényel ahhoz, hogy az ügynök értesüljön a proxybeállításokról. Nyissa meg /lib/systemd/system/walinuxagent.service a fájlt a célgépen, és adja hozzá a következő sort a következő után [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"

Indítsa újra az ügynököt (sudo systemctl restart walinuxagent). Most próbálkozzon újra.

Az az ssh vm parancs a KeyError access_token

Ha a az ssh vm parancs sikertelen, az Azure CLI-ügyfél elavult verzióját használja.

A megoldás az Azure CLI-ügyfél frissítése a 2.21.0-s vagy újabb verzióra.

Az SSH-kapcsolat lezárult

Miután egy felhasználó sikeresen bejelentkezett a használatávalaz login, a virtuális géphez az ssh vm -ip <address> az ssh vm --name <vm_name> -g <resource_group> való csatlakozás sikertelen lehet a "Kapcsolat ip_address 22-s> port által bezárt<" paranccsal.

Ennek a hibának az egyik oka, hogy a felhasználó nincs hozzárendelve a virtuális gép rendszergazdai bejelentkezési vagy virtuálisgép-felhasználói bejelentkezési szerepköréhez a virtuális gép hatókörén belül. Ebben az esetben a megoldás az, hogy hozzáadja a felhasználót valamelyik Azure RBAC-szerepkörhöz a virtuális gép hatókörén belül.

Ez a hiba akkor is előfordulhat, ha a felhasználó egy szükséges Azure RBAC-szerepkörben van, de a rendszer által hozzárendelt felügyelt identitás le lett tiltva a virtuális gépen. Ebben az esetben hajtsa végre az alábbi műveleteket:

  1. Engedélyezze a rendszer által hozzárendelt felügyelt identitást a virtuális gépen.
  2. Hagyjon néhány percet, mielőtt a felhasználó megpróbál csatlakozni a használatával az ssh vm --ip <ip_address>.

Virtuálisgép-méretezési csoportokkal kapcsolatos csatlakozási problémák

A virtuálisgép-méretezési csoportokkal létesített virtuálisgép-kapcsolatok meghiúsulhatnak, ha a méretezési csoport példányai régi modellt futtatnak.

A méretezési csoportok példányainak a legújabb modellre való frissítése megoldhatja a problémát, különösen akkor, ha a Microsoft Entra Login bővítmény telepítése óta nem történt frissítés. A példányok frissítése szabványos méretezési csoportkonfigurációt alkalmaz az egyes példányokra.

Az AllowGroups vagy DenyGroups utasítások sshd_config az első bejelentkezés meghiúsulását okozzák a Microsoft Entra-felhasználók számára

Ha sshd_config vagy AllowGroups DenyGroups utasítást tartalmaz, az első bejelentkezés sikertelen a Microsoft Entra-felhasználók számára. Ha az utasítást azután adták hozzá, hogy a felhasználók már sikeresen bejelentkeztek, bejelentkezhetnek.

Az egyik megoldás az sshd_config eltávolítása és DenyGroups az utasítások eltávolításaAllowGroups.

Egy másik megoldás a sshd_config egy match user szakaszának áthelyezése AllowGroups és DenyGroups áthelyezése. Győződjön meg arról, hogy az egyező sablon kizárja a Microsoft Entra-felhasználókat.

Engedély megtagadása az Azure Shellből a Linux Red Hat/Oracle 7.X virtuális géphez való csatlakozáskor.

A 7.4-es cél virtuális gép OpenSSH-kiszolgálójának verziója túl régi. Az OpenSSH-ügyfél 8.8-es verziójával nem kompatibilis verzió. További információért tekintse meg az RSA SHA256-tanúsítványokat .

Megkerülő megoldás:

  • Hozzáadási lehetőség "PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com" a az ssh vm parancsban.
az ssh vm -n myVM -g MyResourceGroup -- -A -o "PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com"
  • A beállítás "PubkeyAcceptedKeyTypes= +ssh-rsa-cert-v01@openssh.com" hozzáadása a következőben: ./home/<user>/.ssh/config file

Adja hozzá az "PubkeyAcceptedKeyTypes +ssh-rsa-cert-v01@openssh.com" ügyfélkonfigurációs fájlhoz.

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

Következő lépések