Informazioni su come gestire utenti amministrativi, SSH e dischi di controllo o di ripristino in macchine virtuali Linux usando l'estensione VMAccess con l'interfaccia della riga di comando di Azure 2.0Manage administrative users, SSH, and check or repair disks on Linux VMs using the VMAccess Extension with the Azure CLI 2.0

Il disco della VM Linux genera errori.The disk on your Linux VM is showing errors. In qualche modo la password radice della VM Linux è stata reimpostata o la chiave privata SSH è stata eliminata accidentalmente.You somehow reset the root password for your Linux VM or accidentally deleted your SSH private key. In passato, quando nel data center si verificava questa situazione, era necessario accedere all'unità e quindi aprire il KVM per raggiungere la console del server.If that happened back in the days of the datacenter, you would need to drive there and then open the KVM to get at the server console. L'estensione VMAccess di Azure può essere concepita come il commutatore tastiera, video e mouse che consente di accedere alla console per reimpostare l'accesso a Linux o eseguire la manutenzione a livello di disco.Think of the Azure VMAccess extension as that KVM switch that allows you to access the console to reset access to Linux or perform disk level maintenance.

Questo articolo illustra come usare l'estensione VMAccess di Azure per controllare o ripristinare un disco, reimpostare l'accesso utente, gestire gli account di utenti amministrativi o reimpostare la configurazione dei dischi SSH in Linux.This article shows you how to use the Azure VMAccess Extension to check or repair a disk, reset user access, manage administrative user accounts, or reset the SSH configuration on Linux. È possibile anche eseguire questi passaggi tramite l'interfaccia della riga di comando di Azure 1.0.You can also perform these steps with the Azure CLI 1.0.

Modi di usare l'estensione VMAccessWays to use the VMAccess Extension

Esistono due modi per usare l'estensione VMAccess nelle VM Linux:There are two ways that you can use the VMAccess Extension on your Linux VMs:

L'esempio seguente usa i comandi az vm user.The following examples use az vm user commands. Per eseguire questi passaggi è necessario aver installato la versione più recente dell'interfaccia della riga di comando di Azure 2.0 e aver effettuato l'accesso a un account Azure con il comando az login.To perform these steps, you need the latest Azure CLI 2.0 installed and logged in to an Azure account using az login.

Ripristinare la chiave SSHReset SSH key

L'esempio seguente ripristina la chiave SSH per l'utente azureuser nella VM denominata myVM:The following example resets the SSH key for the user azureuser on the VM named myVM:

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

Reimpostazione delle passwordReset password

L'esempio seguente ripristina la password per l'utente azureuser nella VM denominata myVM:The following example resets the password for the user azureuser on the VM named myVM:

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

Riavviare SSHRestart SSH

L'esempio seguente riavvia il daemon SSH e reimposta la configurazione SSH sui valori predefiniti in una macchina virtuale denominata myVM:The following example restarts the SSH daemon and resets the SSH configuration to default values on a VM named myVM:

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

Creare un utente amministrativo/sudoCreate an administrative/sudo user

L'esempio seguente crea un utente denominato myNewUser con autorizzazioni sudo.The following example creates a user named myNewUser with sudo permissions. L'account usa una chiave SSH per l'autenticazione nella macchina virtuale denominata myVM.The account uses an SSH key for authentication on the VM named myVM. Questo metodo è progettato per ottenere di nuovo l'accesso a una macchina virtuale nel caso in cui le credenziali attuali siano state perse o dimenticate.This method is designed to help you regain access to a VM in the event that current credentials are lost or forgotten. Come procedura consigliata gli account con autorizzazioni sudo devono presentare limitazioni.As a best practice, accounts with sudo permissions should be limited.

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

Eliminare un utenteDelete a user

L'esempio seguente elimina un utente denominato myNewUser nella VM denominata myVM:The following example deletes a user named myNewUser on the VM named myVM:

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

Usare file JSON e l'estensione VMAccessUse JSON files and the VMAccess Extension

Gli esempi seguenti usano file JSON non elaborati.The following examples use raw JSON files. Usare az vm extension set per chiamare in seguito i file JSON.Use az vm extension set to then call your JSON files. Questi file JSON possono essere chiamati anche dai modelli di Azure.These JSON files can also be called from Azure templates.

Ripristinare l'accesso utenteReset user access

Se si è perso l'accesso alla radice della VM Linux è possibile avviare uno script VMAccess per reimpostare la chiave SSH o la password di un utente.If you have lost access to root on your Linux VM, you can launch a VMAccess script to reset a user's SSH key or password.

Per reimpostare la chiave pubblica SSH di un utente, creare un file denominato reset_ssh_key.json e aggiungere le impostazioni nel formato seguente.To reset the SSH public key of a user, create a file named reset_ssh_key.json and add settings in the following format. Usare valori personalizzati per i parametri username e ssh_key:Substitute your own values for the username and ssh_key parameters:

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

Eseguire lo script VMAccess con:Execute the VMAccess script with:

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

Per reimpostare la password di un utente, creare un file denominato reset_user_password.json e aggiungere le impostazioni nel formato seguente.To reset a user password, create a file named reset_user_password.json and add settings in the following format. Usare valori personalizzati per i parametri username e password:Substitute your own values for the username and password parameters:

{
  "username":"azureuser",
  "password":"myNewPassword" 
}

Eseguire lo script VMAccess con:Execute the VMAccess script with:

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

Riavviare SSHRestart SSH

Per riavviare il daemon SSH e reimpostare la configurazione SSH sui valori predefiniti, creare un file denominato reset_sshd.json.To restart the SSH daemon and reset the SSH configuration to default values, create a file named reset_sshd.json. Aggiungere il contenuto seguente:Add the following content:

{
  "reset_ssh": true
}

Eseguire lo script VMAccess con:Execute the VMAccess script with:

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

Gestire gli utenti amministrativiManage administrative users

Per creare un utente con autorizzazioni sudo che esegua l'autenticazione con una chiave SSH, creare un file denominato create_new_user.json e aggiungere impostazioni nel formato seguente.To create a user with sudo permissions that uses an SSH key for authentication, create a file named create_new_user.json and add settings in the following format. Usare valori personalizzati per i parametri username e ssh_key.Substitute your own values for the username and ssh_key parameters. Questo metodo è progettato per ottenere di nuovo l'accesso a una macchina virtuale nel caso in cui le credenziali attuali siano state perse o dimenticate.This method is designed to help you regain access to a VM in the event that current credentials are lost or forgotten. Come procedura consigliata gli account con autorizzazioni sudo devono presentare limitazioni.As a best practice, accounts with sudo permissions should be limited.

{
  "username":"myNewUser",
  "ssh_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCZ3S7gGp3rcbKmG2Y4vGZFMuMZCwoUzZNG1vHY7P2XV2x9FfAhy8iGD+lF8UdjFX3t5ebMm6BnnMh8fHwkTRdOt3LDQq8o8ElTBrZaKPxZN2thMZnODs5Hlemb2UX0oRIGRcvWqsd4oJmxsXa/Si98Wa6RHWbc9QZhw80KAcOVhmndZAZAGR+Wq6yslNo5TMOr1/ZyQAook5C4FtcSGn3Y+WczaoGWIxG4ZaWk128g79VIeJcIQqOjPodHvQAhll7qDlItVvBfMOben3GyhYTm7k4YwlEdkONm4yV/UIW0la1rmyztSBQIm9sZmSq44XXgjVmDHNF8UfCZ1ToE4r2SdwTmZv00T2i5faeYnHzxiLPA3Enub7iUo5IdwFArnqad7MO1SY1kLemhX9eFjLWN4mJe56Fu4NiWJkR9APSZQrYeKaqru4KUC68QpVasNJHbuxPSf/PcjF3cjO1+X+4x6L1H5HTPuqUkyZGgDO4ynUHbko4dhlanALcriF7tIfQR9i2r2xOyv5gxJEW/zztGqWma/d4rBoPjnf6tO7rLFHXMt/DVTkAfn5woYtLDwkn5FMyvThRmex3BDf0gujoI1y6cOWLe9Y5geNX0oj+MXg/W0cXAtzSFocstV1PoVqy883hNoeQZ3mIGB3Q0rIUm5d9MA2bMMt31m1g3Sin6EQ== myNewUser@myVM",
  "password":"myNewUserPassword"
}

Eseguire lo script VMAccess con:Execute the VMAccess script with:

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

Per eliminare un utente, creare un file denominato delete_user.json e aggiungere il contenuto seguente.To delete a user, create a file named delete_user.json and add the following content. Usare un valore personalizzato per il parametro remove_user:Substitute your own value for the remove_user parameter:

{
  "remove_user":"myNewUser"
}

Eseguire lo script VMAccess con:Execute the VMAccess script with:

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

Controllare o riparare il discoCheck or repair the disk

Tramite VMAccess è anche possibile controllare e riparare un disco aggiunto alla macchina virtuale Linux.Using VMAccess you can also check and repair a disk that you added to the Linux VM.

Per controllare e quindi riparare il disco, creare un file denominato disk_check_repair.json e aggiungere impostazioni nel formato seguente.To check and then repair the disk, create a file named disk_check_repair.json and add settings in the following format. Usare un valore personalizzato per il nome di repair_disk:Substitute your own value for the name of repair_disk:

{
  "check_disk": "true",
  "repair_disk": "true, mydiskname"
}

Eseguire lo script VMAccess con:Execute the VMAccess script with:

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

Passaggi successiviNext steps

L'aggiornamento di Linux mediante l'estensione VMAccess di Azure è un metodo per apportare modifiche a una VM Linux in esecuzione.Updating Linux using the Azure VMAccess Extension is one method to make changes on a running Linux VM. È inoltre possibile usare strumenti come cloud-init e modelli di Azure Resource Manager per modificare la VM Linux in fase di avvio.You can also use tools like cloud-init and Azure Resource Manager templates to modify your Linux VM on boot.

Estensioni e funzionalità delle macchine virtuali per LinuxVirtual machine extensions and features for Linux

Creazione di modelli di Azure Resource Manager con le estensioni di VM LinuxAuthoring Azure Resource Manager templates with Linux VM extensions

Uso di cloud-init per personalizzare una VM Linux durante la creazioneUsing cloud-init to customize a Linux VM during creation