您是否曾经因为忘记 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 主机密钥指纹报告给平台

  • 资源磁盘管理

  • 格式化并安装资源磁盘

  • 配置交换空间

wKiom1e9IP_BqUtiAADIrWyoolk419.jpg-wh_50


好了,下面步入正题:


重置Linux虚机的用户名和密码:(密码规则 包含英文字母,需要区分大小写,数字,特殊符号组合,至少8位,不要使用之前的密码历史记录和用户名全拼)
#指定虚拟机
 
$vm = Get-AzureVM -ServiceName '云服务名称' -Name '虚拟机名称'
$vm.GetInstance().ProvisionGuestAgent = $true

wKiom1e9I0OCAIQAAAAUExuSfak488.png-wh_50 
#输入您当前的用户名和新密码
 
$UserName = "指定用户名"
 
$Password = "指定密码"
 
$PrivateConfig = '{"username":"'+ $UserName + '", "password":"' +  $Password + '"}'

wKiom1e9I1iyKlNcAAALc6Eg_zg660.png-wh_50

wKioL1e9I1ii0afFAAAEVBxZQws443.png-wh_50

 
#开始执行
 
$ExtensionName = 'VMAccessForLinux'
 
$Publisher = 'Microsoft.OSTCExtensions'
 
$Version =  '1.*'

wKiom1e9I3HwWdSlAAADtSJuIdA672.png-wh_50

wKioL1e9I3GTMCibAAAHoEalvsk351.png-wh_50

 
Set-AzureVMExtension -ExtensionName $ExtensionName -VM  $vm -Publisher $Publisher -Version $Version -PrivateConfiguration $PrivateConfig | Update-AzureVM

wKiom1e9I3zAbEXLAAASxE-W3qk519.png-wh_50


到此,重置完成,使用刚重置的新密码进行远程登录。

注意:如果当时填写的用户名为不存在的用户名(或者忘记了用户名),那么在执行Set-AzureVMExtension时也会帮您创建此用户名、密码,原来的用户名密码将会被继续保留可用。