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:
- Redefinir a senha
- Redefinir a chave SSH
- Redefinir a senha e a chave SSH
- Criar uma nova conta de usuário sudo
- Redefinir a configuração de SSH
- Excluir um usuário
- Exibir o status da extensão VMAccess
- Verificar a consistência dos discos adicionados
- Reparar discos adicionados na sua VM do Linux
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
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" }
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
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" }
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
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" }
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.
Crie um arquivo chamado PrivateConf.json com esse conteúdo.
{ "reset_ssh":"True" }
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.
Crie um arquivo chamado PrivateConf.json com esse conteúdo, substituindo o nome de usuário a ser removido em removeUserName.
{ "remove_user":"removeUserName" }
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:
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" }
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.
Crie um arquivo chamado PublicConf.json com esse conteúdo.
{ "repair_disk":"true", "disk_name":"myDisk" }
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.