您是否曾经因为忘记 Azure VM 密码或 SSH 密钥而导致无法访问 VM?VMAccess 扩展程序使您可以重置密码、SSH 密钥或 SSH 配置,以便重新获得访问权限。本文将说明当忘记Azure Linux VM密码时如何进行通过Powershell进行重置。
在之前请确保您“在创建虚拟机时候,选择Install the VM Agent”(本文适用于安装了VM Agent的用户,默认为安装的。未安装VM Agent的解决方法将在后续文章中续写),“VM Agent”作用如下:
创建用户帐户。
配置 SSH 身份验证类型。
部署 SSH 公钥和密钥对
设置主机名
将主机名发布到平台 DNS
将 SSH 主机密钥指纹报告给平台
资源磁盘管理
格式化并安装资源磁盘
配置交换空间
好了,下面步入正题:
重置Linux虚机的用户名和密码:(密码规则 包含英文字母,需要区分大小写,数字,特殊符号组合,至少8位,不要使用之前的密码历史记录和用户名全拼)
#指定虚拟机
$vm = Get-AzureVM -ServiceName '云服务名称' -Name '虚拟机名称'
$vm.GetInstance().ProvisionGuestAgent = $true
#输入您当前的用户名和新密码
$UserName = "指定用户名"
$Password = "指定密码"
$PrivateConfig = '{"username":"'+ $UserName + '", "password":"' + $Password + '"}'
#开始执行
$ExtensionName = 'VMAccessForLinux'
$Publisher = 'Microsoft.OSTCExtensions'
$Version = '1.*'
Set-AzureVMExtension -ExtensionName $ExtensionName -VM $vm -Publisher $Publisher -Version $Version -PrivateConfiguration $PrivateConfig | Update-AzureVM
到此,重置完成,使用刚重置的新密码进行远程登录。
注意:如果当时填写的用户名为不存在的用户名(或者忘记了用户名),那么在执行Set-AzureVMExtension时也会帮您创建此用户名、密码,原来的用户名密码将会被继续保留可用。