VMAccess-tillägg för Linux
VMAccess-tillägget används för att hantera administrativa användare, konfigurera SSH och kontrollera eller reparera diskar på virtuella Azure Linux-datorer. Tillägget integreras med Azure Resource Manager-mallar. Den kan också anropas med hjälp av Azure CLI, Azure PowerShell, Azure-portalen och REST-API:et för Virtuella Azure-datorer.
Den här artikeln beskriver hur du kör VMAccess-tillägget från Azure CLI och via en Azure Resource Manager-mall. Den här artikeln innehåller även felsökningssteg för Linux-system.
Kommentar
Om du använder TILLÄGGET VMAccess för att återställa lösenordet för den virtuella datorn när du har installerat Tillägget Microsoft Entra-inloggning kör du tillägget Microsoft Entra-inloggning igen för att återaktivera Microsoft Entra-inloggning för den virtuella datorn.
Förutsättningar
Linux-distributioner som stöds
Linux-distribution | x64 | ARM64 |
---|---|---|
Alma Linux | 9.x+ | 9.x+ |
Debian | 10+ | 11.x+ |
Flatcar Linux | 3374.2.x+ | 3374.2.x+ |
Azure Linux | 2.x | 2.x |
openSUSE | 12.3+ | Stöds inte |
Oracle Linux | 6.4+, 7.x+, 8.x+ | Stöds inte |
Red Hat Enterprise Linux | 6.7+, 7.x+, 8.x+ | 8.6+, 9.0+ |
Rocky Linux | 9.x+ | 9.x+ |
SLES | 12.x+, 15.x+ | 15.x SP4+ |
Ubuntu | 18.04+, 20.04+, 22.04+ | 20.04+, 22.04+ |
Tips
- VMAccess har utformats för att återfå åtkomsten till en virtuell dator eftersom åtkomsten går förlorad. Baserat på den här principen ger den sudo-behörighet till kontot som anges i användarnamnsfältet. Om du inte vill att en användare ska få sudo-behörigheter loggar du in på den virtuella datorn och använder inbyggda verktyg (till exempel usermod, chage osv.) för att hantera oprivilegierade användare.
- Du kan bara ha en version av tillägget som tillämpas på en virtuell dator. Om du vill köra en andra åtgärd uppdaterar du det befintliga tillägget med en ny konfiguration.
- Under en användaruppdatering ändrar
sshd_config
VMAccess filen och tar en säkerhetskopia av den i förväg. Om du vill återställa den ursprungliga säkerhetskopierade SSH-konfigurationen kör du VMAccess medrestore_backup_ssh
inställt påTrue
.
Tilläggsschema
Konfigurationen för VMAccess-tillägget innehåller inställningar för användarnamn, lösenord, SSH-nycklar osv. Du kan lagra den här informationen i konfigurationsfiler, ange den på kommandoraden eller inkludera den i en Arm-mall (Azure Resource Manager). Följande JSON-schema innehåller alla tillgängliga egenskaper som kan användas i offentliga och skyddade inställningar.
{
"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
}
}
}
Egenskapsvärden
Name | Värde/exempel | Datatyp |
---|---|---|
apiVersion | 2023-09-01 | datum |
förläggare | Microsoft.OSTCExtensions | sträng |
type | VMAccessForLinux | sträng |
typeHandlerVersion | 1.5 | heltal |
Egenskapsvärden för inställningar
Name | Datatyp | beskrivning |
---|---|---|
check_disk | boolean | Om du vill kontrollera disken (valfritt). Endast en mellan check_disk och repair_disk kan anges till true. |
repair_disk | boolean | Om du vill kontrollera disken (valfritt). Endast en mellan check_disk och repair_disk kan anges till true. |
disk_name | sträng | Namnet på disken som ska repareras (krävs när repair_disk är sant). |
användarnamn | sträng | Namnet på den användare som ska hanteras (krävs för alla åtgärder på ett användarkonto). |
password | sträng | Lösenordet som ska anges för användarkontot. |
ssh_key | sträng | Den offentliga SSH-nyckel som ska läggas till för användarkontot. SSH-nyckeln kan vara i ssh-rsa , ssh-ed25519 eller .pem format. |
reset_ssh | boolean | Om SSH ska återställas eller inte. Om true ersätter den den sshd_config filen med en intern resursfil som motsvarar standard-SSH-konfigurationen för den distributionen. |
remove_user | sträng | Namnet på användaren som ska tas bort. Det går inte att använda med reset_ssh , restore_backup_ssh och password . |
upphörande | sträng | Förfallodatum som ska anges till för kontot, i form av yyyy-mm-dd . Standardvärdet är aldrig. |
remove_prior_keys | boolean | Om du vill ta bort gamla SSH-nycklar när du lägger till en ny. Måste användas med ssh_key . |
restore_backup_ssh | boolean | Om den ursprungliga säkerhetskopierade sshd_config ska återställas eller inte. |
Malldistribution
Azure VM-tillägg kan distribueras med ARM-mallar (Azure Resource Manager). JSON-schemat som beskrivs i föregående avsnitt kan användas i en ARM-mall för att köra VMAccess-tillägget under mallens distribution. Du hittar en exempelmall som innehåller VMAccess-tillägget på GitHub.
JSON-konfigurationen för ett tillägg för en virtuell dator måste vara kapslad i mallens resursfragment för den virtuella datorn, specifikt "resources": []
objekt för mallen för den virtuella datorn och för en vm-skalningsuppsättning under "virtualMachineProfile":"extensionProfile":{"extensions" :[]
objekt.
Azure CLI-distribution
Använda användarkommandon för virtuella Azure CLI-datorer
Följande CLI-kommandon under az vm user use the VMAccess Extension. Om du vill använda dessa kommandon måste du installera den senaste Azure CLI och logga in på ett Azure-konto med az login.
Uppdatera SSH-nyckel
I följande exempel uppdateras SSH-nyckeln för användaren azureUser
på den virtuella datorn med namnet myVM
:
az vm user update \
--resource-group myResourceGroup \
--name myVM \
--username azureUser \
--ssh-key-value ~/.ssh/id_rsa.pub
Kommentar
Kommandot az vm user update
lägger till den nya offentliga nyckeltexten i ~/.ssh/authorized_keys
filen för administratörsanvändaren på den virtuella datorn. Det här kommandot ersätter eller tar inte bort några befintliga SSH-nycklar. Det här kommandot tar inte bort tidigare nycklar som angetts vid distributionstiden eller efterföljande uppdateringar med hjälp av VMAccess-tillägget.
Återställ lösenord
I följande exempel återställs lösenordet för användaren azureUser
på den virtuella datorn med namnet myVM
:
az vm user update \
--resource-group myResourceGroup \
--name myVM \
--username azureUser \
--password myNewPassword
Starta om SSH
I följande exempel startas SSH-daemonen om och SSH-konfigurationen återställs till standardvärden på en virtuell dator med namnet myVM
:
az vm user reset-ssh \
--resource-group myResourceGroup \
--name myVM
Kommentar
Kommandot az vm user reset-ssh
ersätter sshd_config-filen med en standardkonfigurationsfil från den interna resurskatalogen. Det här kommandot återställer inte den ursprungliga SSH-konfigurationen som hittades på den virtuella datorn.
Skapa en administrativ/sudo-användare
I följande exempel skapas en användare med namnet myNewUser
med sudo-behörigheter. Kontot använder en SSH-nyckel för autentisering på den virtuella datorn med namnet myVM
. Den här metoden hjälper dig att återfå åtkomsten till en virtuell dator när aktuella autentiseringsuppgifter går förlorade eller glöms bort. Vi rekommenderar att konton med sudo-behörigheter begränsas.
az vm user update \
--resource-group myResourceGroup \
--name myVM \
--username myNewUser \
--ssh-key-value ~/.ssh/id_rsa.pub
Ta bort en användare
I följande exempel tas en användare med namnet myNewUser
på den virtuella datorn med namnet myVM
:
az vm user delete \
--resource-group myResourceGroup \
--name myVM \
--username myNewUser
Använda azure CLI VM/VMSS-tilläggskommandon
Du kan också använda kommandot az vm extension set och az vmss extension set för att köra VMAccess-tillägget med den angivna konfigurationen.
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"}'
Parametrarna --settings
och --protected-settings
accepterar även JSON-filsökvägar. Om du till exempel vill uppdatera den offentliga SSH-nyckeln för en användare skapar du en JSON-fil med namnet update_ssh_key.json
och lägger till inställningar i följande format. Ersätt värdena i filen med din egen information:
{
"username":"azureuser",
"ssh_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCZ3S7gGp3rcbKmG2Y4vGZFMuMZCwoUzZNGxxxxxx2XV2x9FfAhy8iGD+lF8UdjFX3t5ebMm6BnnMh8fHwkTRdOt3LDQq8o8ElTBrZaKPxZN2thMZnODs5Hlemb2UX0oRIGRcvWqsd4oJmxsXa/Si98Wa6RHWbc9QZhw80KAcOVhmndZAZAGR+Wq6yslNo5TMOr1/ZyQAook5C4FtcSGn3Y+WczaoGWIxG4ZaWk128g79VIeJcIQqOjPodHvQAhll7qDlItVvBfMOben3GyhYTm7k4YwlEdkONm4yV/UIW0la1rmyztSBQIm9sZmSq44XXgjVmDHNF8UfCZ1ToE4r2SdwTmZv00T2i5faeYnHzxiLPA3Enub7xxxxxxwFArnqad7MO1SY1kLemhX9eFjLWN4mJe56Fu4NiWJkR9APSZQrYeKaqru4KUC68QpVasNJHbuxPSf/PcjF3cjO1+X+4x6L1H5HTPuqUkyZGgDO4ynUHbko4dhlanALcriF7tIfQR9i2r2xOyv5gxJEW/zztGqWma/d4rBoPjnf6tO7rLFHXMt/DVTkAfn5wxxtLDwkn5FMyvThRmex3BDf0gujoI1y6cOWLe9Y5geNX0oj+MXg/W0cXAtzSFocstV1PoVqy883hNoeQZ3mIGB3Q0rIUm5d9MA2bMMt31m1g3Sin6EQ== azureuser@myVM"
}
Kör VMAccess-tillägget med följande kommando:
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-distribution
Azure PowerShell kan användas för att distribuera VMAccess-tillägget till en befintlig virtuell dator eller vm-skalningsuppsättning. Du kan distribuera tillägget till en virtuell dator genom att köra:
$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
Du kan också ange och ändra tilläggsinställningar med hjälp av strängar:
$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
Om du vill distribuera till en VM-skalningsuppsättning kör du följande kommando:
$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
Felsökning och support
VMAccess-tilläggsloggarna finns lokalt på den virtuella datorn och är mest informativa när det gäller felsökning.
Plats | beskrivning |
---|---|
/var/log/waagent.log | Innehåller loggar från Linux-agenten och visar när en uppdatering av tillägget inträffade. Vi kan kontrollera det för att säkerställa att tillägget kördes. |
/var/log/azure/Microsoft.OSTCExtensions.VMAccessForLinux/* | VMAccess-tillägget skapar loggar som du hittar här. Katalogen innehåller CommandExecution.log där du kan hitta varje kommando som körs tillsammans med resultatet, tillsammans med extension.log , som innehåller enskilda loggar för varje körning. |
/var/lib/waagent/Microsoft.OSTCExtensions.VMAccessForLinux-senaste< version>/config/* | Konfigurationen och binärfilerna för VMAccess VM-tillägget. |
Du kan också hämta körningstillståndet för VMAccess-tillägget, tillsammans med andra tillägg på en viss virtuell dator, genom att köra följande kommando:
az vm extension list --resource-group myResourceGroup --vm-name myVM -o table
Om du vill ha mer hjälp kan du kontakta Azure-experterna på Azure Community Support. Du kan också skapa en Azure-supportincident. Gå till Azure-support och välj Hämta support. Mer information om Azure Support finns i Vanliga frågor och svar om Azure-supportplaner.
Nästa steg
Mer information om koden, aktuella versioner och mer dokumentation finns i VMAccess Linux – GitHub.