Como redefinir uma senha local do Linux em VMs do Azure

Aplica-se a: ✔️ VMs do Linux

Este artigo fornece três métodos para redefinir senhas de VM (Máquina Virtual) Linux local. Se a conta de usuário tiver expirado ou você quiser criar uma nova conta, poderá usar os métodos a seguir para criar uma nova conta de administrador local e recuperar o acesso à VM.

Redefinir a senha usando o Agente Linux do Azure

Você pode redefinir a senha sem anexar o disco do sistema operacional a outra VM. Esse método requer que o Agente Linux do Azure 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 fazer a redefinição de 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 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 ou root por meio do admin user 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. Certifique-se de que a autenticação de senha esteja habilitada no servidor OpenSSH se você tentar fazer login no servidor usando a autenticação SSH e de senha.

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

      egrep "^PasswordAuthentication" /etc/ssh/sshd_config
      
    2. Se o PasswordAuthentication valor estiver 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 admin user conta ou root executando o passwd comando:

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

    cat /etc/sysconfig/selinux
    
  5. Se SElinux estiver no enforcing modo, certifique-se de que SElinux permite as alterações de arquivo feitas com o passwd comando. Depois que a senha for alterada, você pode executar o seguinte comando para rotular novamente o sistema de arquivos para facilitar o carregamento da alteração.

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

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

Redefinir a senha usando uma VM de reparo

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

Observação

Se você estiver enfrentando problemas que afetam uma solução de virtualização 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 da solução de virtualização de rede para obter instruções sobre como fazer uma redefinição de senha com segurança.

Você pode executar os comandos vm repair para criar uma VM de reparo que tenha uma cópia do disco do sistema operacional da VM afetada anexada. Em seguida, monte a cópia dos sistemas de arquivos do sistema operacional na VM de reparo por meio do ambiente chroot.

Observação

Como alternativa, crie uma VM de resgate manualmente usando o portal do Azure. Para obter mais informações, confira 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 seguintes comandos az vm repair create 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 solucione problemas do ambiente chroot.

  3. Certifique-se de que a autenticação de senha esteja habilitada no servidor OpenSSH se você tentar fazer login no servidor usando a autenticação SSH e de senha.

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

      egrep "^PasswordAuthentication" /etc/ssh/sshd_config
      
    2. Se o PasswordAuthentication valor estiver 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 admin user conta ou root executando o passwd comando:

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

    cat /etc/sysconfig/selinux
    
  6. Se SElinux estiver no enforcing modo, certifique-se de que SElinux permite as alterações de arquivo feitas com o passwd comando. Depois que a senha for alterada, você pode executar o seguinte comando para rotular novamente o sistema de arquivos para facilitar o carregamento da alteração.

    touch /.autorelabel
    
  7. Saia do ambiente chroot.

  8. Remonte o disco do sistema operacional na VM afetada trocando o disco do sistema operacional com o seguinte comando:

    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.