我有一个运行Ubuntu 14.04的经典Azure虚拟机。 它运行在一个标准的A0(1核心,0.75 GB的内存),我调整到标准A2使用Web门户。
resize后,SSH不再工作。 它警告更改的密钥,并从已知的主机中删除条目,它连接到会话,但不接受azureuser帐户的密码。
我试图重置密码使用:
azure vm extension set compilemachine "VMAccessForLinux" "Microsoft.OSTCExtensions" "1.*" -r "Microsoft.OSTCExtensions.VMAccessForLinux"
但是由于缺乏configuration客户代理,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
有关如何从虚拟机恢复数据的任何提示? 还是要恢复对虚拟机的访问?
在这种情况下,您可以下载虚拟机的虚拟硬盘,并将其挂载到任何Windows系统(或将其连接到Hyper-V虚拟机)。
我们可以使用这个脚本来重置密码:
1.创build一个.json文件,如下所示:
{ "username": "azureuser", "password": "newpassword" }
然后将其保存在您的PC上。
2.用CLIloginazure色:
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
完成后 ,我们可以使用新密码login虚拟机(请尝试使用FQDNlogin此虚拟机:xxxx.cloudapp.net)。
顺便说一句,如果错误再次出现,请使用PowerShell检查ProvisionGuestAgent值:
Add-AzureAccount $vm = Get-AzureVM -ServiceName 'MyServiceName' -Name 'MyVMName' $vm.GetInstance().ProvisionGuestAgent
如果该值未设置为“true”,则应使用flow命令将ProvisionGuestAgent设置为“True”:
$vm.GetInstance().ProvisionGuestAgent = $true
有关如何从虚拟机恢复数据的任何提示? 还是要恢复对虚拟机的访问?
如果你想从虚拟机中恢复数据,我们可以创build另一个虚拟机2,然后删除这个虚拟机(保留磁盘),并将这个磁盘挂载到虚拟机2,这样我们可以将数据复制到新的虚拟机上。
另外,我们可以将新用户添加到vm1的/ etc / passwd和/ etc / shadow和/ etc / group中。 完成之后,我们可以使用这个VHD来创build一个新的虚拟机,和以前一样。