Azure 调整大小并丢失密码

Azure 调整大小并丢失密码

我有一个运行 Ubuntu 14.04 的经典 Azure VM。它运行在标准 A0(1 核,0.75 GB 内存)中,我使用 Web 门户将其调整为标准 A2。

调整大小后,SSH 不再起作用。它警告密钥已更改,在我从已知主机中删除条目后,它连接到会话但不接受该azureuser帐户的密码。

我尝试使用以下方法重置密码:

azure vm extension set compilemachine "VMAccessForLinux" "Microsoft.OSTCExtensions" 
"1.*" -r "Microsoft.OSTCExtensions.VMAccessForLinux"

但由于缺少 Provision Guest Agent,CLI 无法工作

info:    Executing command vm extension set
+ Getting virtual machines
error:   Provision Guest Agent must be enabled on the VM before setting VM Extension.
error:   Error information has been recorded to /Users/user/.azure/azure.err
error:   vm extension set command failed

关于如何从虚拟机恢复数据,或者如何恢复对虚拟机的访问,有什么提示吗?

答案1

在紧急情况下,您可以下载虚拟机​​的虚拟硬盘并将其安装在任何 Windows 系统上(或将其附加到 Hyper-V 虚拟机)。

答案2

我们可以使用这个脚本来重置密码:
1. 创建一个.json 文件,如下所示:

{
  "username": "azureuser",
  "password": "newpassword"
}

然后将其保存在您的电脑上。2
.使用 CLI 登录 azure:

azure login
azure config mode asm
azure vm extension set ubuntu VMAccessForLinux Microsoft.OSTCExtensions "1.4" --private-config-path C:\Users\Desktop\jason\protected.json
info:    Executing command vm extension set
+ Getting virtual machines
+ Updating vm extension
info:    vm extension set command OK

之后完全的,我们可以使用新密码登录虚拟机(请尝试使用完整限定域名 (FQDN)登录此VM:xxxx.cloudapp.net)。

顺便说一句,如果再次出现错误,请使用PowerShell检查ProvisionGuestAgent值:

Add-AzureAccount
$vm = Get-AzureVM -ServiceName 'MyServiceName' -Name 'MyVMName'
$vm.GetInstance().ProvisionGuestAgent

如果该值未设置为“true”,我们应该使用流命令将ProvisionGuestAgent设置为“True”:

$vm.GetInstance().ProvisionGuestAgent = $true

关于如何从虚拟机恢复数据,或者如何恢复对虚拟机的访问,有什么提示吗?

如果要从虚拟机中恢复数据,我们可以再创建另一个 VM2,然后删除此虚拟机(保留磁盘),并将磁盘挂载到 VM2,这样我们就可以将数据复制到新的虚拟机中。
我们也可以添加新用户到 vm1 的 /etc/passwd 和 /etc/shadow 和 /etc/group。完成后,我们可以使用此 VHD 来创建一个新的 VM,与之前的相同。

相关内容