Come reimpostare la password o la chiave SSH di una VM Linux, correggere la configurazione SSH e verificare la coerenza dei dischi che utilizzano l'estensione VMAccessHow to reset a Linux VM password or SSH key, fix the SSH configuration, and check disk consistency using the VMAccess extension

Se non è possibile connettersi a una macchina virtuale Linux su Azure perché si è dimenticata la password o una chiave SSH (Secure Shell) non è valida o per un problema di configurazione di SSH, usare l'estensione VMAccessForLinux con l'interfaccia della riga di comando di Azure per reimpostare la password o la chiave SSH, correggere la configurazione SSH e verificare la coerenza del disco.If you can't connect to a Linux virtual machine on Azure because of a forgotten password, an incorrect Secure Shell (SSH) key, or a problem with the SSH configuration, use the VMAccessForLinux extension with the Azure CLI to reset the password or SSH key, fix the SSH configuration, and check disk consistency.

Importante

Azure offre due diversi modelli di distribuzione per creare e usare le risorse: Gestione risorse e la distribuzione classica.Azure has two different deployment models for creating and working with resources: Resource Manager and Classic. Questo articolo illustra l'uso del modello di distribuzione classica.This article covers using the Classic deployment model. Microsoft consiglia di usare il modello di Gestione risorse per le distribuzioni più recenti.Microsoft recommends that most new deployments use the Resource Manager model. Informazioni su come eseguire questa procedura con il modello di Resource Manager.Learn how to perform these steps using the Resource Manager model.

Con l'interfaccia della riga di comando di Azure, per accedere ai comandi si usa il comando azure vm extension set dell'interfaccia della riga di comando (Bash, terminale, prompt dei comandi).With the Azure CLI, you use the azure vm extension set command from your command-line interface (Bash, Terminal, Command prompt) to access commands. Per informazioni dettagliate sull'uso dell'estensione, eseguire azure help vm extension set .Run azure help vm extension set for detailed extension usage.

Con l’interfaccia della riga di comando di Azure è possibile eseguire le attività seguenti:With the Azure CLI, you can do the following tasks:

PrerequisitiPrerequisites

Sarà necessario eseguire le operazioni seguenti:You will need to do the following:

  • Sarà necessario installare l'interfaccia della riga di comando di Azure e connettersi alla proprio sottoscrizione per usare le risorse di Azure associate al proprio account.You will need to install the Azure CLI and connect to your subscription to use Azure resources associated with your account.
  • Impostare la modalità corretta per il modello di distribuzione classico digitando quanto segue al prompt dei comandi:Set the correct mode for the classic deployment model by typing the following at the command prompt: azure config mode asm
  • Procurarsi una nuova password o un set di chiavi SSH, se si desidera reimpostare l'una o l'altro.Have a new password or set of SSH keys, if you want to reset either one. Queste non saranno necessarie se si vuole reimpostare la configurazione di SSH.You don't need these if you want to reset the SSH configuration.

Reimpostare la passwordReset the password

  1. Creare un file denominato PrivateConf.json nel computer locale con queste righe.Create a file on your local computer named PrivateConf.json with these lines. Sostituire myUserName e myP@ssW0rd con il proprio nome utente e password e impostare la data di scadenza.Replace myUserName and myP@ssW0rd with your own user name and password and set your own date for expiration.

        {
        "username":"myUserName",
        "password":"myP@ssW0rd",
        "expiration":"2020-01-01"
        }
    
  2. Eseguire questo comando, sostituendo il nome della macchina virtuale in myVM.Run this command, substituting the name of your virtual machine for myVM.

        azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* –-private-config-path PrivateConf.json
    

Reimpostare la chiave SSHReset the SSH key

  1. Creare un file denominato PrivateConf.json con questo contenuto.Create a file named PrivateConf.json with these contents. Sostituire i valori myUserName e mySSHKey con le proprie informazioni.Replace the myUserName and mySSHKey values with your own information.

        {
        "username":"myUserName",
        "ssh_key":"mySSHKey"
        }
    
  2. Eseguire questo comando, sostituendo il nome della macchina virtuale in myVM.Run this command, substituting the name of your virtual machine for myVM.

     azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --private-config-path PrivateConf.json
    

Reimpostare sia la password sia la chiave SSHReset both the password and the SSH key

  1. Creare un file denominato PrivateConf.json con questo contenuto.Create a file named PrivateConf.json with these contents. Sostituire i valori myUserName, mySSHKey e myP@ssW0rd con le proprie informazioni.Replace the myUserName, mySSHKey and myP@ssW0rd values with your own information.

        {
        "username":"myUserName",
        "ssh_key":"mySSHKey",
        "password":"myP@ssW0rd"
        }
    
  2. Eseguire questo comando, sostituendo il nome della macchina virtuale in myVM.Run this command, substituting the name of your virtual machine for myVM.

        azure vm extension set MyVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --private-config-path PrivateConf.json
    

Creare un nuovo account utente sudoCreate a new sudo user account

Se si dimentica il nome utente, è possibile usare VMAccess per crearne uno nuovo con privilegi sudo.If you forget your user name, you can use VMAccess to create a new one with the sudo authority. In questo caso, il nome utente e la password esistenti non verranno modificati.In this case, the existing user name and password will not be modified.

Per creare un nuovo utente sudo con accesso tramite password, usare lo script in Reimpostare la password e specificare il nuovo nome utente.To create a new sudo user with password access, use the script in Reset the password and specify the new user name.

Per creare un nuovo utente sudo con accesso tramite chiave SSH, usare lo script in Reimpostare la chiave SSH e specificare il nuovo nome utente.To create a new sudo user with SSH key access, use the script in Reset the SSH key and specify the new user name.

È inoltre possibile usare Reimpostare la password e la chiave SSH per creare un nuovo utente con accesso tramite password e chiave SSH.You can also use Reset the password and the SSH key to create a new user with both password and SSH key access.

Reimpostare la configurazione SSHReset the SSH configuration

Se la configurazione SSH è in uno stato indesiderato, si potrebbe perdere anche l'accesso alla macchina virtuale.If the SSH configuration is in an undesired state, you might also lose access to the VM. È possibile usare l'estensione VMAccess per reimpostare la configurazione allo stato predefinito.You can use the VMAccess extension to reset the configuration to its default state. A tale scopo, è sufficiente impostare la chiave "reset_ssh" su "True".To do so, you just need to set the “reset_ssh” key to “True”. L'estensione riavvia il server SSH, apre la porta SSH nella VM e ripristina la configurazione SSH predefinita.The extension will restart the SSH server, open the SSH port on your VM, and reset the SSH configuration to default values. L'account utente (nome, password o chiavi SSH) non verrà modificato.The user account (name, password or SSH keys) will not be changed.

Nota

Il file di configurazione SSH che viene reimpostato si trova in /etc/ssh/sshd_config.The SSH configuration file that gets reset is located at /etc/ssh/sshd_config.

  1. Creare un file denominato PrivateConf.json con questo contenuto.Create a file named PrivateConf.json with this content.

        {
        "reset_ssh":"True"
        }
    
  2. Eseguire questo comando, sostituendo il nome della macchina virtuale in myVM.Run this command, substituting the name of your virtual machine for myVM.

        azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --private-config-path PrivateConf.json
    

Eliminare un utenteDelete a user

Se si desidera eliminare un account utente senza accedere alla macchina virtuale direttamente, è possibile usare questo script.If you want to delete a user account without logging into to the VM directly, you can use this script.

  1. Creare un file denominato PrivateConf.json con questo contenuto, sostituendo il nome utente da rimuovere in removeUserName.Create a file named PrivateConf.json with this content, substituting the user name to remove for removeUserName.

        {
        "remove_user":"removeUserName"
        }
    
  2. Eseguire questo comando, sostituendo il nome della macchina virtuale in myVM.Run this command, substituting the name of your virtual machine for myVM.

        azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --private-config-path PrivateConf.json
    

Visualizzare lo stato dell'estensione VMAccessDisplay the status of the VMAccess extension

Per visualizzare lo stato dell'estensione VMAccess, eseguire questo comando.To display the status of the VMAccess extension, run this command.

        azure vm extension get

Verificare la coerenza dei dischi aggiuntiCheck consistency of added disks

Per eseguire fsck su tutti i dischi nella macchina virtuale Linux, è necessario eseguire le operazioni seguenti:To run fsck on all disks in your Linux virtual machine, you will need to do the following:

  1. Creare un file denominato PublicConf.json con questo contenuto.Create a file named PublicConf.json with this content. Il controllo del disco accetta un valore booleano che indica se controllare o meno i dischi collegati alla macchina virtuale.Check Disk takes a boolean for whether to check disks attached to your virtual machine or not.

        {   
        "check_disk": "true"
        }
    
  2. Eseguire questo comando, sostituendo il nome della macchina virtuale in myVM.Run this command to execute, substituting the name of your virtual machine for myVM.

        azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --public-config-path PublicConf.json 
    

Riparare i dischiRepair disks

Per ripristinare i dischi che presentano problemi di montaggio o errori di configurazione di montaggio, usare l'estensione VMAccess per reimpostare la configurazione di montaggio nella macchina virtuale Linux.To repair disks that are not mounting or have mount configuration errors, use the VMAccess extension to reset the mount configuration on your Linux virtual machine. Sostituire il nome del disco in myDisk.Substituting the name of your disk for myDisk.

  1. Creare un file denominato PublicConf.json con questo contenuto.Create a file named PublicConf.json with this content.

        {
        "repair_disk":"true",
        "disk_name":"myDisk"
        }
    
  2. Eseguire questo comando, sostituendo il nome della macchina virtuale in myVM.Run this command to execute, substituting the name of your virtual machine for myVM.

        azure vm extension set myVM VMAccessForLinux Microsoft.OSTCExtensions 1.* --public-config-path PublicConf.json
    

Passaggi successiviNext steps

  • Se per reimpostare la password o la chiave SSH, correggere la configurazione SSH e verificare la coerenza dei dischi si vogliono usare cmdlet Azure PowerShell o modelli di Azure Resource Manager, vedere la documentazione dell'estensione VMAccess in GitHub.If you want to use Azure PowerShell cmdlets or Azure Resource Manager templates to reset the password or SSH key, fix the SSH configuration, and check disk consistency, see the VMAccess extension documentation on GitHub.
  • Per reimpostare la password o la chiave SSH di una VM Linux distribuita con il modello di distribuzione classica è anche possibile usare il portale di Azure .You can also use the Azure portal to reset the password or SSH key of a Linux VM deployed in the classic deployment model. Non è attualmente possibile usare il portale per eseguire queste operazioni per una VM Linux distribuita con il modello di distribuzione Resource Manager.You can't currently use the portal do to this for a Linux VM deployed in the Resource Manager deployment model.
  • Per altre informazioni sull'uso di estensioni VM per macchine virtuali di Azure vedere Informazioni sulle estensioni e sulle funzionalità delle macchine virtuali.See About virtual machine extensions and features for more about using VM extensions for Azure virtual machines.