Como redefinir uma senha de VM do Linux ou chave SSH, corrigir a configuração de SSH e verificar a consistência de disco usando a extensão VMAccess

Importante

As VMs clássicas serão desativadas em 1º de março de 2023.

Se você usar recursos de IaaS do ASM, conclua sua migração até 1º de março de 2023. Incentivamos você a fazer o comutador mais cedo para tirar proveito dos muitos aprimoramentos de recursos no Azure Resource Manager.

Para obter mais informações, consulte migrar seus recursos de IaaS para Azure Resource Manager até 1º de março de 2023.

Se você não pode se conectar a uma máquina virtual Linux no Azure devido a uma senha esquecida, uma chave do Secure Shell (SSH) incorreta ou um problema com a configuração do SSH, use a extensão VMAccessForLinux com a CLI do Azure para redefinir a senha ou chave SSH ou corrigir a configuração do SSH e verificar a consistência do disco.

Observação

O Azure tem dois modelos de implantação diferentes para criar e trabalhar com recursos: Gerenciador de Recursos e Clássico. Este artigo aborda o uso do modelo de implantação Clássica. A Microsoft recomenda que a maioria das implantações novas use o modelo do Gerenciador de Recursos. Saiba como executar estas etapas usando o modelo do Resource Manager.

Com a CLI do Azure, você poderá usar o comando azure vm extension set na sua interface de linha de comando (Bash, Terminal, Prompt de comando) para acessar comandos. Execute azure help vm extension set para ver o uso detalhado da extensão.

Com o CLI do Azure, você pode realizar as seguintes tarefas:

{1>{2>Pré-requisitos<2}<1}

Você precisará fazer o seguinte:

  • Você também precisará instalar a CLI do Azure e conectar-se à sua assinatura para usar recursos do Azure associados à sua conta.
  • Defina o modo correto para o modelo de implantação clássico digitando o seguinte no prompt de comando:
        azure config mode asm
    
  • Tenha uma nova senha ou conjunto de chaves SSH, se quiser redefinir um deles. Você não precisa deles para redefinir a configuração de SSH.

Redefinir a senha

  1. Crie um arquivo no seu computador local chamado PrivateConf.json com essas linhas. Substitua myUserName e myP@ssW0rd pelo seu próprio nome de usuário e senha e defina sua própria data de expiração.

        {
        "username":"myUserName",
        "password":"myP@ssW0rd",
        "expiration":"2020-01-01"
        }
    
  2. Execute esse comando, substituindo myVM pelo nome da máquina virtual.

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

Redefinir a chave SSH

  1. Crie um arquivo chamado PrivateConf.json com esse conteúdo. Substitua os valores myUserName e mySSHKey pelas suas próprias informações.

        {
        "username":"myUserName",
        "ssh_key":"mySSHKey"
        }
    
  2. Execute esse comando, substituindo myVM pelo nome da máquina virtual.

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

Redefinir a senha e a chave SSH

  1. Crie um arquivo chamado PrivateConf.json com esse conteúdo. Substitua os valores myUserName, mySSHKey e myP@ssW0rd pelas suas próprias informações.

        {
        "username":"myUserName",
        "ssh_key":"mySSHKey",
        "password":"myP@ssW0rd"
        }
    
  2. Execute esse comando, substituindo myVM pelo nome da máquina virtual.

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

Criar uma nova conta de usuário sudo

Se você esquecer seu nome de usuário, você pode usar VMAccess para criar um novo com a autoridade sudo. Nesse caso, o nome de usuário e a senha existente não serão modificados.

Para criar um novo usuário sudo com senha de acesso, use o script em Redefinir a senha e especifique o novo nome de usuário.

Para criar um novo usuário sudo com senha de acesso, use o script em Redefinir a chave SSH e especifique o novo nome de usuário.

Você também pode usar Redefinir a senha e a chave SSH para criar um novo usuário com senha e o acesso à chave de SSH.

Redefinir a configuração de SSH

Se a configuração do SSH está em um estado indesejado, você também pode perder o acesso à VM. Você pode usar a extensão VMAccess para redefinir a configuração para seu estado padrão. Para fazer isso, basta definir a chave "reset_ssh" como "True". A extensão reinicia o servidor SSH, abre a porta SSH na sua VM e redefine a configuração SSH como padrão. A conta de usuário (nome, senha ou chaves SSH) não será alterada.

Observação

O arquivo de configuração SSH está localizado em /etc/ssh/sshd_config.

  1. Crie um arquivo chamado PrivateConf.json com esse conteúdo.

        {
        "reset_ssh":"True"
        }
    
  2. Execute esse comando, substituindo myVM pelo nome da máquina virtual.

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

Excluir um usuário

Se você deseja excluir uma conta de usuário sem efetuar login à VM diretamente, você pode usar este script.

  1. Crie um arquivo chamado PrivateConf.json com esse conteúdo, substituindo o nome de usuário a ser removido em removeUserName.

        {
        "remove_user":"removeUserName"
        }
    
  2. Execute esse comando, substituindo myVM pelo nome da máquina virtual.

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

Exibir o status da extensão VMAccess

Para exibir o status da extensão VMAccess, execute este comando.

        azure vm extension get

Verificar a consistência dos discos adicionados

Para executar fsck em todos os discos na sua máquina virtual Linux, você precisará fazer o seguinte:

  1. Crie um arquivo chamado PublicConf.json com esse conteúdo. A verificação de disco tem um valor booliano para se deseja verificar os discos anexados à sua máquina virtual ou não.

        {   
        "check_disk": "true"
        }
    
  2. Execute esse comando, substituindo o nome da máquina virtual em myVM.

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

Reparar discos

Para reparar discos que não são de montagem ou tem erros de configuração de montagem, use a extensão VMAccess para redefinir a configuração de montagem em sua máquina virtual do Linux. Substitua o nome do seu disco em myDisk.

  1. Crie um arquivo chamado PublicConf.json com esse conteúdo.

        {
        "repair_disk":"true",
        "disk_name":"myDisk"
        }
    
  2. Execute esse comando, substituindo o nome da máquina virtual em myVM.

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

{1>{2>Próximas etapas<2}<1}

  • Se você quiser usar os cmdlets do Azure PowerShell ou os modelos do Azure Resource Manager para redefinir a senha ou chave SSH, corrigir a configuração de SSH e verificar a consistência do disco, veja a documentação da extensão VMAccess no GitHub.
  • Você também pode usar o portal do Azure para redefinir a senha ou a chave SSH de uma VM do Linux implantada no modelo de implantação clássico. No momento, não é possível usar o portal para fazer isso para uma VM do Linux implantada no modelo de implantação do Gerenciador de Recursos.
  • Veja Sobre os recursos e extensões de máquina virtual para obter mais informações sobre como usar extensões de VM para máquinas virtuais do Azure.