Gerenciar usuários administrativos, SSH e verificar ou reparar discos em VMs Linux do usando a extensão VMAccess com a CLI do AzureManage administrative users, SSH, and check or repair disks on Linux VMs using the VMAccess Extension with the Azure CLI

Visão geralOverview

O disco em sua VM do Linux está mostrando erros.The disk on your Linux VM is showing errors. De alguma forma, você redefiniu a senha raiz para sua VM do Linux ou excluiu acidentalmente sua chave privada SSH.You somehow reset the root password for your Linux VM or accidentally deleted your SSH private key. Se isso tiver ocorrido na época do datacenter, você precisará ir até lá e abrir o KVM para acessar o console do servidor.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. Considere a Extensão VMAccess do Azure como o comutador KVM que permite que você acesse o console para redefinir o acesso para o Linux ou para realizar a manutenção no nível de 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.

Este artigo mostra como usar a extensão VMAccess do Azure para verificar ou reparar um disco, redefinir o acesso do usuário, gerenciar contas de usuário administrativo ou atualizar a configuração do SSH no Linux quando eles estão sendo executados como máquinas virtuais do Azure Resource Manager.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 update the SSH configuration on Linux when they are running as Azure Resource Manager virtual machines. Se precisar gerenciar máquinas virtuais Clássicas, você poderá seguir as instruções encontradas na documentação de VM clássica.If you need to manage Classic virtual machines - you can follow the instructions found in the classic VM documentation.

Observação

Se você usar a extensão VMAccess para redefinir a senha da sua VM depois de instalar a extensão de logon do AAD, será preciso executar novamente a extensão de logon do AAD para habilitar novamente o logon do AAD para seu computador.If you use the VMAccess Extension to reset the password of your VM after installing the AAD Login Extension you will need to rerun the AAD Login Extension to re-enable AAD Login for your machine.

Pré-requisitosPrerequisites

Sistema operacionalOperating system

A extensão de Acesso de VM pode ser executada nessas distribuições do Linux:The VM Access extension can be run against these Linux distributions:

DistribuiçãoDistribution VersãoVersion
UbuntuUbuntu 16.04 LTS, 14.04 LTS e 12.04 LTS16.04 LTS, 14.04 LTS and 12.04 LTS
DebianDebian Debian 7.9+, 8.2+Debian 7.9+, 8.2+
Red HatRed Hat RHEL 6.7+, 7.1+RHEL 6.7+, 7.1+
Oracle LinuxOracle Linux 6.4+, 7.0+6.4+, 7.0+
SuseSuse 11 e 1211 and 12
OpenSuseOpenSuse openSUSE Leap 42.2+openSUSE Leap 42.2+
CentOSCentOS CentOS 6.3+, 7.0+CentOS 6.3+, 7.0+
CoreOSCoreOS 494.4.0+494.4.0+

Modos de usar a extensão VMAccessWays to use the VMAccess Extension

Há duas maneiras de usar a extensão VMAccess em VMs Linux:There are two ways that you can use the VMAccess Extension on your Linux VMs:

Os exemplos seguintes usam comandos az vm user.The following examples use az vm user commands. Para realizar essas etapas, é preciso ter a CLI do Azure mais recente instalada e conectada a uma conta do Azure usando az login.To perform these steps, you need the latest Azure CLI installed and logged in to an Azure account using az login.

Atualizar chave SSHUpdate SSH key

O exemplo a seguir atualiza a chave SSH para o usuário azureuser na VM denominada myVM:The following example updates 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

OBSERVAÇÃO: O comando az vm user update acrescenta o novo texto de chave pública ao arquivo ~/.ssh/authorized_keys para o usuário administrador na VM.NOTE: The az vm user update command appends the new public key text to the ~/.ssh/authorized_keys file for the admin user on the VM. Isso não substitui ou remove quaisquer chaves SSH existentes.This does not replace or remove any existing SSH keys. Isso não removerá as chaves anteriores definidas no momento da implantação ou atualizações subsequentes através da extensão VMAccess.This will not remove prior keys set at deployment time or subsequent updates via the VMAccess Extension.

Redefinir senhaReset password

O exemplo a seguir redefine a senha para o usuário azureuser na VM denominada 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

Reiniciar o SSHRestart SSH

O exemplo a seguir reiniciará o daemon SSH e redefine a configuração de SSH para valores padrão em uma VM denominada 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

Criar um usuário administrativo/sudoCreate an administrative/sudo user

O exemplo a seguir cria um usuário chamado myNewUser com permissões sudo.The following example creates a user named myNewUser with sudo permissions. A conta usa uma chave SSH para autenticação na VM denominada myVM.The account uses an SSH key for authentication on the VM named myVM. Esse método foi projetado para ajudá-lo a recuperar o acesso a uma VM caso as credenciais atuais sejam perdidas ou esquecidas.This method is designed to help you regain access to a VM in the event that current credentials are lost or forgotten. Como melhor prática, contas com permissões sudo devem ser limitadas.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

Excluir um usuárioDelete a user

O exemplo a seguir exclui um usuário chamado myNewUser na VM denominada 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

Usar arquivos JSON e a extensão VMAccessUse JSON files and the VMAccess Extension

Os exemplos a seguir usam arquivos JSON brutos.The following examples use raw JSON files. Use az vm extension set para chamar seus arquivos JSON.Use az vm extension set to then call your JSON files. Esses arquivos JSON também podem ser chamados dos modelos do Azure.These JSON files can also be called from Azure templates.

Redefinir o acesso do usuárioReset user access

Se você tiver perdido o acesso à raiz em sua VM do Linux, poderá iniciar um script da VMAccess para atualizar a senha ou a chave SSH de um usuário.If you have lost access to root on your Linux VM, you can launch a VMAccess script to update a user's SSH key or password.

Para atualizar a chave pública SSH de um usuário, crie um arquivo chamado update_ssh_key.json e adicione as configurações no seguinte formato.To update the SSH public key of a user, create a file named update_ssh_key.json and add settings in the following format. Substitua seus próprios valores para os parâmetros 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"
}

Execute o script VMAccess com: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 update_ssh_key.json

Para redefinir uma senha de usuário, crie um arquivo chamado reset_user_password.json e adicione configurações no formato a seguir.To reset a user password, create a file named reset_user_password.json and add settings in the following format. Substitua seus próprios valores para os parâmetros username e password:Substitute your own values for the username and password parameters:

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

Execute o script VMAccess com: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

Reiniciar o SSHRestart SSH

Para reiniciar o daemon SSH e redefinir a configuração de SSH para valores padrão, crie um arquivo chamado reset_sshd.json.To restart the SSH daemon and reset the SSH configuration to default values, create a file named reset_sshd.json. Adicione o seguinte conteúdo:Add the following content:

{
  "reset_ssh": true
}

Execute o script VMAccess com: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

Gerenciar usuários administrativosManage administrative users

Para criar um usuário com permissões sudo que usa uma chave SSH para autenticação, crie um arquivo chamado create_new_user.json e adicione as configurações no formato a seguir.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. Substitua os valores dos parâmetros username e ssh_key pelos seus próprios.Substitute your own values for the username and ssh_key parameters. Esse método foi projetado para ajudá-lo a recuperar o acesso a uma VM caso as credenciais atuais sejam perdidas ou esquecidas.This method is designed to help you regain access to a VM in the event that current credentials are lost or forgotten. Como melhor prática, contas com permissões sudo devem ser limitadas.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"
}

Execute o script VMAccess com: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

Para excluir um usuário, crie um arquivo chamado delete_user.json e adicione o conteúdo a seguir.To delete a user, create a file named delete_user.json and add the following content. Substitua seu próprio valor para o parâmetro remove_user:Substitute your own value for the remove_user parameter:

{
  "remove_user":"myNewUser"
}

Execute o script VMAccess com: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

Verificar ou reparar o discoCheck or repair the disk

Usar o VMAccess você pode verificar e reparar um disco que você adicionou à VM Linux.Using VMAccess you can also check and repair a disk that you added to the Linux VM.

Para verificar e reparar o disco, crie um arquivo chamado disk_check_repair.json e adicione as configurações no seguinte formato.To check and then repair the disk, create a file named disk_check_repair.json and add settings in the following format. Substitua seu próprio valor para o nome do repair_disk:Substitute your own value for the name of repair_disk:

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

Execute o script VMAccess com: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

Solução de problemas e suporteTroubleshoot and support

Solucionar problemasTroubleshoot

Dados sobre o estado das implantações de extensão podem ser recuperados do Portal do Azure usando a CLI do Azure.Data about the state of extension deployments can be retrieved from the Azure portal, and by using the Azure CLI. Para ver o estado da implantação das extensões de uma determinada VM, execute o comando a seguir usando a CLI do Azure.To see the deployment state of extensions for a given VM, run the following command using the Azure CLI.

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

SuporteSupport

Caso precise de mais ajuda em qualquer ponto deste artigo, entre em contato com os especialistas do Azure nos fóruns do Azure e do Stack Overflow no MSDN.If you need more help at any point in this article, you can contact the Azure experts on the MSDN Azure and Stack Overflow forums. Como alternativa, você pode registrar um incidente de suporte do Azure.Alternatively, you can file an Azure support incident. Vá para o site de suporte do Azure e selecione Obter suporte.Go to the Azure support site and select Get support. Para saber mais sobre como usar o suporte do Azure, leia as Perguntas frequentes sobre o suporte do Microsoft Azure.For information about using Azure Support, read the Microsoft Azure support FAQ.