VMAccess-bővítmény Linuxhoz

Figyelemfelhívás

Ez a cikk a CentOS-ra, egy olyan Linux-disztribúcióra hivatkozik, amely közel áll az élettartam (EOL) állapotához. Fontolja meg a használatát, és ennek megfelelően tervezze meg. További információ: CentOS End Of Life útmutató.

A VMAccess-bővítmény felügyeleti felhasználók kezelésére, SSH konfigurálására, valamint lemezek ellenőrzésére vagy javítására szolgál Az Azure Linux rendszerű virtuális gépeken. A bővítmény integrálva van az Azure Resource Manager-sablonokkal. Meghívható az Azure CLI, az Azure PowerShell, az Azure Portal és az Azure Virtual Machines REST API használatával is.

Ez a cikk azt ismerteti, hogyan futtathatja a VMAccess bővítményt az Azure CLI-ből és egy Azure Resource Manager-sablonon keresztül. Ez a cikk a Linux-rendszerek hibaelhárítási lépéseit is ismerteti.

Feljegyzés

Ha a VMAccess bővítményt használja a virtuális gép jelszavának alaphelyzetbe állításához a Microsoft Entra Login bővítmény telepítése után, futtassa újra a Microsoft Entra Login bővítményt a Microsoft Entra Login újbóli engedélyezéséhez a virtuális gép számára.

Előfeltételek

Támogatott Linux-disztribúciók

Linux-disztribúció x64 ARM64
Alma Linux 9.x+ 9.x+
CentOS 7.x+, 8.x+ 7.x+
Debian 10+ 11.x+
Flatcar Linux 3374.2.x+ 3374.2.x+
Azure Linux 2.x 2.x
openSUSE 12.3+ Nem támogatott
Oracle Linux 6.4+, 7.x+, 8.x+ Nem támogatott
Red Hat Enterprise Linux 6.7+, 7.x+, 8.x+ 8.6+, 9.0+
Sziklás Linux 9.x+ 9.x+
SLES 12.x+, 15.x+ 15.x SP4+
Ubuntu 18.04+, 20.04+, 22.04+ 20.04+, 22.04+

Tippek

  • A VMAccess a virtuális géphez való hozzáférés helyreállítására lett tervezve, mivel a hozzáférés elveszett. Ezen elv alapján sudo engedélyt ad a felhasználónév mezőben megadott fiókhoz. Ha nem szeretné, hogy a felhasználó sudo engedélyeket szerezzen, jelentkezzen be a virtuális gépre, és használja a beépített eszközöket (például usermod, chage stb.) a nem jogosult felhasználók kezeléséhez.
  • A bővítmény csak egy verzióját alkalmazhatja egy virtuális gépre. Egy második művelet futtatásához frissítse a meglévő bővítményt egy új konfigurációval.
  • A felhasználói frissítés során a VMAccess módosítja a sshd_config fájlt, és előzetesen biztonsági másolatot készít róla. Az eredeti biztonsági másolattal ellátott SSH-konfiguráció visszaállításához futtassa a VMAccesst a következő beállítással restore_backup_sshTrue: .

Bővítményséma

A VMAccess bővítmény konfigurációja tartalmazza a felhasználónevek, jelszavak, SSH-kulcsok stb. beállításait. Ezeket az információkat konfigurációs fájlokban tárolhatja, megadhatja a parancssorban, vagy belefoglalhatja egy Azure Resource Manager-sablonba. Az alábbi JSON-séma tartalmazza a nyilvános és védett beállításokban használható összes tulajdonságot.

{
  "type": "Microsoft.Compute/virtualMachines/extensions",
  "name": "<name>",
  "apiVersion": "2023-09-01",
  "location": "<location>",
  "dependsOn": [
          "[concat('Microsoft.Compute/virtualMachines/', <vmName>)]"
  ],
  "properties": {
    "publisher": "Microsoft.OSTCExtensions",
    "type": "VMAccessForLinux",
    "typeHandlerVersion": "1.5",
    "autoUpgradeMinorVersion": true,
    "settings": {
      "check_disk": true,
      "repair_disk": false,
      "disk_name": "<disk-name>",
    },
    "protectedSettings": {
      "username": "<username>",
      "password": "<password>",
      "ssh_key": "<ssh-key>",
      "reset_ssh": false,
      "remove_user": "<username>",
      "expiration": "<expiration>",
      "remove_prior_keys": false,
      "restore_backup_ssh": true
    } 
  }
}

Tulajdonságértékek

Név Érték/ Példa Adattípus
apiVersion 2023-09-01 dátum:
Publisher Microsoft.OSTCExtensions húr
típus VMAccessForLinux húr
typeHandlerVersion 1,5 egész

Gépház tulajdonságértékek

Név Adattípus Leírás
check_disk Logikai Ellenőrizze-e a lemezt (nem kötelező). Csak egy között check_disk , és repair_disk lehet beállítani, hogy igaz.
repair_disk Logikai Ellenőrizze-e a lemezt (nem kötelező). Csak egy között check_disk , és repair_disk lehet beállítani, hogy igaz.
disk_name húr A javítandó lemez neve (igaz érték esetén repair_disk kötelező).
username húr A kezelendő felhasználó neve (a felhasználói fiók összes műveletéhez szükséges).
jelszó húr A felhasználói fiókhoz beállított jelszó.
ssh_key húr A felhasználói fiókhoz hozzáadandó nyilvános SSH-kulcs. Az SSH-kulcs lehet , ssh-ed25519vagy .pem formátum.ssh-rsa
reset_ssh Logikai Az SSH alaphelyzetbe állításának lehetősége. Ha truea sshd_config fájlt egy belső erőforrásfájlra cseréli, amely megfelel a disztribúció alapértelmezett SSH-konfigurációjának.
remove_user húr Az eltávolítani kívánt felhasználó neve. Nem használható a , restore_backup_sshés passworda reset_ssh.
lejárat húr A fiókhoz beállított lejárati idő a következő formában yyyy-mm-dd: . Alapértelmezés szerint soha.
remove_prior_keys Logikai A régi SSH-kulcsok eltávolítása újak hozzáadásakor. A használatával kell használni.ssh_key
restore_backup_ssh Logikai Az eredeti biztonsági mentési sshd_config visszaállítása.

Sablonalapú telepítés

Az Azure-beli virtuálisgép-bővítmények Azure Resource Manager- (ARM-) sablonokkal telepíthetők. Az előző szakaszban részletezett JSON-séma arm-sablonban használható a VMAccess-bővítmény futtatásához a sablon üzembe helyezése során. A GitHubon található VMAccess-bővítményt tartalmazó mintasablon.

A virtuálisgép-bővítmény JSON-konfigurációját a sablon virtuálisgép-erőforrástöredékében kell beágyazni, különösen "resources": [] a virtuálisgép-sablonhoz és az objektum alatti virtuálisgép-méretezési csoporthoz tartozó objektumba "virtualMachineProfile":"extensionProfile":{"extensions" :[] .

Azure CLI üzemelő példány

Az Azure CLI virtuális gép felhasználói parancsainak használata

Az az virtuálisgép-felhasználó alatti alábbi CLI-parancsok a VMAccess bővítményt használják. A parancsok használatához telepítenie kell a legújabb Azure CLI-t, és be kell jelentkeznie egy Azure-fiókba az az login használatával.

SSH-kulcs frissítése

Az alábbi példa frissíti a felhasználó azureUser SSH-kulcsát a névvel ellátott myVMvirtuális gépen:

az vm user update \
  --resource-group myResourceGroup \
  --name myVM \
  --username azureUser \
  --ssh-key-value ~/.ssh/id_rsa.pub

Feljegyzés

A az vm user update parancs hozzáfűzi az új nyilvános kulcs szövegét a ~/.ssh/authorized_keys virtuális gép rendszergazdai felhasználójának fájljához. Ez a parancs nem cseréli le vagy távolítja el a meglévő SSH-kulcsokat. Ez a parancs nem távolítja el az üzembe helyezéskor beállított korábbi kulcsokat vagy az azt követő frissítéseket a VMAccess bővítmény használatával.

Új jelszó létrehozása

Az alábbi példa visszaállítja a felhasználó azureUser jelszavát a névvel ellátott myVMvirtuális gépen:

az vm user update \
  --resource-group myResourceGroup \
  --name myVM \
  --username azureUser \
  --password myNewPassword

SSH újraindítása

Az alábbi példa újraindítja az SSH-démont, és visszaállítja az SSH-konfigurációt az alapértelmezett értékekre a következő nevű myVMvirtuális gépen:

az vm user reset-ssh \
  --resource-group myResourceGroup \
  --name myVM

Feljegyzés

A az vm user reset-ssh parancs lecseréli a sshd_config fájlt egy alapértelmezett konfigurációs fájlra a belső erőforrások könyvtárából. Ez a parancs nem állítja vissza a virtuális gépen található eredeti SSH-konfigurációt.

Rendszergazdai/sudo felhasználó létrehozása

Az alábbi példa egy sudo engedélyekkel rendelkező myNewUser felhasználót hoz létre. A fiók egy SSH-kulcsot használ a hitelesítéshez a névvel ellátott myVMvirtuális gépen. Ez a módszer segít visszanyerni a virtuális géphez való hozzáférést, ha az aktuális hitelesítő adatok elvesznek vagy elfelejtik. Ajánlott eljárásként a sudo engedélyekkel rendelkező fiókokat korlátozni kell.

az vm user update \
  --resource-group myResourceGroup \
  --name myVM \
  --username myNewUser \
  --ssh-key-value ~/.ssh/id_rsa.pub

Felhasználó törlése

Az alábbi példa egy, a virtuális gépen elnevezett myNewUsermyVMfelhasználót töröl:

az vm user delete \
  --resource-group myResourceGroup \
  --name myVM \
  --username myNewUser

Azure CLI virtuális gép/VMSS-bővítményparancsok használata

Az az vm extension set és az az vmss extension set parancsokkal is futtathatja a VMAccess bővítményt a megadott konfigurációval.

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name VMAccessForLinux \
  --publisher Microsoft.OSTCExtensions \
  --version 1.5 \
  --settings '{"check_disk":true}'
  --protected-settings '{"username":"user1","password":"userPassword"}'

A --settings paraméterek JSON-fájl --protected-settings elérési útját is elfogadják. Egy felhasználó SSH nyilvános kulcsának frissítéséhez például hozzon létre egy JSON-fájlt, update_ssh_key.json és adja hozzá a beállításokat a következő formátumban. Cserélje le a fájlban lévő értékeket a saját adataira:

{
  "username":"azureuser",
  "ssh_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCZ3S7gGp3rcbKmG2Y4vGZFMuMZCwoUzZNGxxxxxx2XV2x9FfAhy8iGD+lF8UdjFX3t5ebMm6BnnMh8fHwkTRdOt3LDQq8o8ElTBrZaKPxZN2thMZnODs5Hlemb2UX0oRIGRcvWqsd4oJmxsXa/Si98Wa6RHWbc9QZhw80KAcOVhmndZAZAGR+Wq6yslNo5TMOr1/ZyQAook5C4FtcSGn3Y+WczaoGWIxG4ZaWk128g79VIeJcIQqOjPodHvQAhll7qDlItVvBfMOben3GyhYTm7k4YwlEdkONm4yV/UIW0la1rmyztSBQIm9sZmSq44XXgjVmDHNF8UfCZ1ToE4r2SdwTmZv00T2i5faeYnHzxiLPA3Enub7xxxxxxwFArnqad7MO1SY1kLemhX9eFjLWN4mJe56Fu4NiWJkR9APSZQrYeKaqru4KUC68QpVasNJHbuxPSf/PcjF3cjO1+X+4x6L1H5HTPuqUkyZGgDO4ynUHbko4dhlanALcriF7tIfQR9i2r2xOyv5gxJEW/zztGqWma/d4rBoPjnf6tO7rLFHXMt/DVTkAfn5wxxtLDwkn5FMyvThRmex3BDf0gujoI1y6cOWLe9Y5geNX0oj+MXg/W0cXAtzSFocstV1PoVqy883hNoeQZ3mIGB3Q0rIUm5d9MA2bMMt31m1g3Sin6EQ== azureuser@myVM"
}

Futtassa a VMAccess bővítményt a következő paranccsal:

az vm extension set \
  --resource-group myResourceGroup \
  --vm-name myVM \
  --name VMAccessForLinux \
  --publisher Microsoft.OSTCExtensions \
  --version 1.5 \
  --protected-settings update_ssh_key.json

Azure PowerShell üzembe helyezése

Az Azure PowerShell használatával üzembe helyezheti a VMAccess-bővítményt egy meglévő virtuális gépre vagy virtuálisgép-méretezési csoportra. A bővítményt a következő futtatásával helyezheti üzembe egy virtuális gépen:

$username = "<username>"
$sshKey = "<cert-contents>"

$settings = @{"check_disk" = $true};
$protectedSettings = @{"username" = $username; "ssh_key" = $sshKey};

Set-AzVMExtension -ResourceGroupName "<resource-group>" `
    -VMName "<vm-name>" `
    -Location "<location>" `
    -Publisher "Microsoft.OSTCExtensions" `
    -ExtensionType "VMAccessForLinux" `
    -Name "VMAccessForLinux" `
    -TypeHandlerVersion "1.5" `
    -Settings $settings `
    -ProtectedSettings $protectedSettings

A bővítménybeállításokat sztringek használatával is megadhatja és módosíthatja:

$username = "<username>"
$sshKey = "<cert-contents>"

$settingsString = '{"check_disk":true}';
$protectedSettingsString = '{"username":"' + $username + '","ssh_key":"' + $sshKey + '"}';

Set-AzVMExtension -ResourceGroupName "<resource-group>" `
    -VMName "<vm-name>" `
    -Location "<location>" `
    -Publisher "Microsoft.OSTCExtensions" `
    -ExtensionType "VMAccessForLinux" `
    -Name "VMAccessForLinux" `
    -TypeHandlerVersion "1.5" `
    -SettingString $settingsString `
    -ProtectedSettingString $protectedSettingsString

Virtuálisgép-méretezési csoportban való üzembe helyezéshez futtassa a következő parancsot:

$resourceGroupName = "<resource-group>"
$vmssName = "<vmss-name>"

$protectedSettings = @{
  "username" = "azureUser"
  "password" = "userPassword"
}

$publicSettings = @{
  "repair_disk" = $true
  "disk_name" = "<disk_name>"
}

$vmss = Get-AzVmss `
            -ResourceGroupName $resourceGroupName `
            -VMScaleSetName $vmssName

Add-AzVmssExtension -VirtualMachineScaleSet $vmss `
    -Name "<extension-name>" `
    -Publisher "Microsoft.OSTCExtensions" `
    -Type "VMAccessForLinux" `
    -TypeHandlerVersion "1.5"" `
    -AutoUpgradeMinorVersion $true `
    -Setting $publicSettings `
    -ProtectedSetting $protectedSettings

Update-AzVmss `
    -ResourceGroupName $resourceGroupName `
    -Name $vmssName `
    -VirtualMachineScaleSet $vmss

Hibaelhárítás és támogatás

A VMAccess bővítménynaplói helyileg léteznek a virtuális gépen, és a hibaelhárítás során a leginformatívabbak.

Hely Leírás
/var/log/waagent.log A Linux-ügynök naplóit tartalmazza, és megjeleníti, hogy mikor történt frissítés a bővítményre. Ellenőrizheti, hogy a bővítmény futott-e.
/var/log/azure/Microsoft.OSTCExtensions.VMAccessForLinux/* A VMAccess bővítmény naplókat hoz létre, amelyek itt találhatók. A könyvtár tartalmazza CommandExecution.log az egyes végrehajtott parancsok és azok eredményének helyét, valamint extension.logaz egyes végrehajtásokhoz tartozó egyedi naplókat.
/var/lib/waagent/Microsoft.OSTCExtensions.VMAccessForLinux-legújabb< verzió>/config/* A VMAccess virtuálisgép-bővítmény konfigurációja és bináris fájljai.

Az alábbi parancs futtatásával lekérheti a VMAccess-bővítmény végrehajtási állapotát, valamint az adott virtuális gépen lévő többi bővítményt is:

az vm extension list --resource-group myResourceGroup --vm-name myVM -o table

További segítségért forduljon az Azure-szakértőkhöz az Azure közösségi támogatási szolgálatánál. Másik lehetőségként Azure-támogatás incidenst is beszedhet. Nyissa meg a Azure-támogatás, és válassza a Támogatás kérése lehetőséget. Az Azure-támogatással kapcsolatos további információkért olvassa el a Azure-támogatás csomagokkal kapcsolatos gyakori kérdéseket.

Következő lépések

A kód, az aktuális verziók és további dokumentáció megtekintéséhez tekintse meg a VMAccess Linux – GitHub című témakört.