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ê usa os recursos de IaaS do ASM, realize a migração até 1º de março de 2023. Recomendamos que faça a migração o quanto antes para aproveitar as inúmeras melhorias feitas no Azure Resource Manager.

Para mais informações, confira Migrar os recursos de IaaS para o 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: Resource Manager 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:

Pré-requisitos

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 de definido sua própria data para 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, mySSHKeye myP@ssW0rd por 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
    

Próximas etapas

  • 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.