Como redefinir uma senha local do Linux em VMs do Azure

Este artigo fornece dois métodos para redefinir as senhas locais da VM (Máquina Virtual) do Linux. Se a conta de usuário expirou ou você deseja criar uma nova conta, pode usar os seguintes métodos para criar uma nova conta de administrador local e recuperar o acesso à VM.

Redefina a senha usando o Agente Linux do Azure

Você pode redefinir a senha sem anexar o disco do sistema operacional a outra VM. Este método requer que o Azure Linux Agent seja instalado na VM afetada.

  1. Verifique se o serviço do Agente Linux do Azure (waagent) está em execução na VM afetada e está em um estado pronto no portal do Azure.

  2. Configure as variáveis de ambiente e use a CLI do Azure ou o Azure Cloud Shell para redefinir a senha:

    AZ_RESOURCE_GROUP="YourResourceGroupName"
    AZ_VM_NAME="VMname"
    AZ_ADMIN_USER="adminName"
    AZ_MSADMIN_PASS="newPassword"
    
    az vm user update -u $AZ_ADMIN_USER -p $AZ_MSADMIN_PASS -g $AZ_RESOURCE_GROUP -n $AZ_VM_NAME
    
  3. Tente acessar a VM.

Para atualizar a chave SSH, consulte Gerenciar usuários administrativos, SSH usando a extensão VMAccess com a CLI do Azure.

Você também pode redefinir a senha ou a chave SSH usando o recurso Redefinir senha no portal do Azure.

Para obter mais informações, consulte a extensão vmaccess para Linux.

Redefinir a senha usando o console serial com o modo de usuário único

Você pode usar o console serial para redefinir a conta root ou admin user por meio do modo de usuário único para acesso à VM.

  1. Siga o processo do modo de usuário único para redefinir ou adicionar uma senha.

  2. Verifique se a autenticação de senha está habilitada no servidor OpenSSH se você tentar fazer logon no servidor usando o SSH e a autenticação de senha.

    1. Verifique se o valor PasswordAuthentitcation está definido como yes ou no em /etc/ssh/sshd_config executando o seguinte comando:

      egrep "^PasswordAuthentication" /etc/ssh/sshd_config
      
    2. Se o valor PasswordAuthentication for definido como no, use um editor de texto como vi ou nano para alterar o valor para yes.

  3. Crie uma nova senha para a conta admin user ou root executando o comando passwd:

    passwd <admin_user>
    
  4. Verifique se SElinux está no modo enforcing em /etc/sysconfig/selinux executando o seguinte comando:

    cat /etc/sysconfig/selinux
    
  5. Se SElinux estiver no modo enforcing, verifique se SElinux permite as alterações de arquivo feitas com o comando passwd. Depois que a senha for alterada, você poderá executar o comando a seguir para renomear o sistema de arquivos a fim de facilitar o carregamento da alteração.

    touch /.autorelabel
    
  6. Reinicie a VM executando o seguinte comando:

    /usr/sbin/reboot -f
    
  7. Tente acessar a VM.

Redefina a senha usando uma VM de recuperação

Este método foi testado usando as distribuições e versões suportadas do Linux.

Observação

Se você estiver enfrentando problemas que afetam um dispositivo virtual de rede do Azure, esse método não se aplica à sua situação. Em vez disso, você deve entrar em contato com o fornecedor do dispositivo virtual de rede para obter instruções sobre como fazer uma redefinição de senha com segurança.

Use os comandos vm repair para criar uma VM de reparo que tenha uma cópia anexada do disco do sistema operacional da VM afetada. Em seguida, monte a cópia dos sistemas de arquivos do sistema operacional na VM de reparo usando o ambiente chroot.

Observação

Como alternativa, crie uma VM de resgate manualmente usando o portal do Azure. Para obter mais informações, consulte Solucionar problemas de uma VM do Linux anexando o disco do sistema operacional a uma VM de recuperação usando o portal do Azure.

  1. Execute os comandos az vm repair create a seguir para criar uma cópia do disco do sistema operacional. Em seguida, o disco é anexado a uma VM de recuperação automaticamente.

    AZ_RESOURCE_GROUP="YourResourceGroupName"
    AZ_VM_NAME="VMname"
    AZ_ADMIN_USER="userName"
    AZ_MSADMIN_PASS="newPassword"
    
    az vm repair create -g $AZ_RESOURCE_GROUP -n $AZ_VM_NAME --repair-username $AZ_ADMIN_USER --repair-password "$AZ_MSADMIN_PASS" --verbose
    
  2. Faça logon na VM de reparo e resolva problemas do ambiente chroot.

  3. Verifique se a autenticação de senha está habilitada no servidor OpenSSH se você tentar fazer logon no servidor usando o SSH e a autenticação de senha.

    1. Verifique se o valor PasswordAuthentitcation está definido como yes ou no em /etc/ssh/sshd_config executando o seguinte comando:

      egrep "^PasswordAuthentication" /etc/ssh/sshd_config
      
    2. Se o valor PasswordAuthentication for definido como no, use um editor de texto como vi ou nano para alterar o valor para yes.

  4. Crie uma nova senha para a conta admin user ou root executando o comando passwd:

    passwd <admin_user>
    
  5. Verifique se SElinux está no modo enforcing em /etc/sysconfig/selinux executando o seguinte comando:

    cat /etc/sysconfig/selinux
    
  6. Se SElinux estiver no modo enforcing, verifique se SElinux permite as alterações de arquivo feitas com o comando passwd. Depois que a senha for alterada, você poderá executar o comando a seguir para renomear o sistema de arquivos a fim de facilitar o carregamento da alteração.

    touch /.autorelabel
    
  7. Saia do ambiente chroot.

  8. Remonte o disco do sistema operacional para a VM afetada trocando os discos do sistema operacional:

    az vm repair restore -g $AZ_RESOURCE_GROUP -n $AZ_VM_NAME --verbose
    
  9. Tente acessar a VM.

Próximas etapas

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.