安全补丁和重启后 Azure Ubuntu VM 完全无响应

安全补丁和重启后 Azure Ubuntu VM 完全无响应

我有一台 Azure VM,用于托管多个网站。最近,我登录时发现它需要一些安全更新,因此根据此链接 (https://askubuntu.com/questions/196768/how-to-install-updates-via-command-line),我运行了这个脚本。

sudo apt-get update  && sudo apt-get upgrade && sudo apt-get dost-upgrade

它完成了自己的任务,安装了补丁,然后要求我重启虚拟机。重启之后,我现在无法再使用 ssh 连接虚拟机,无法访问 Web 应用程序,也无法 ping 通虚拟机。

我尝试在 Azure 门户中重新启动 VM,尽管状态为“正在运行”,并且 Azure 认为 VM 正在运行,但 VM 完全没有响应。

我感觉补丁可能损坏了虚拟机本身。但我无法判断,因为我无法连接到虚拟机来查看发生了什么,甚至无法访问任何日志。

在这种情况下我能做什么?

答案1

如果您的 VM 是 V2,则启动诊断可能有助于找到问题:

https://azure.microsoft.com/en-us/blog/boot-diagnostics-for-virtual-machines-v2/

帕斯卡

答案2

我在 Azure 上使用 Ubuntu ARM VM 时也遇到了类似的问题。我登录到 VM,运行了与 RoboShop 类似的更新,然后重新启动了 VM。重新启动后,我无法登录。

我不确定是什么导致了这个问题,但我通过重置我的虚拟机密码解决了这个问题。不幸的是,您无法通过新的 Azure 门户重置密码。它只是说“即将推出”。

我使用以下步骤通过 PowerShell 重置了密码:

https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-troubleshoot-ssh-connections/

概括起来,步骤如下:

1) 启动 Azure PowerShell 并连接到 Azure 帐户。如果您像我一样,永远记不住如何执行此操作,请运行以下命令:

Add-AzureAccount

2)切换到ARM命令:

Switch-AzureMode -Name AzureResourceManager

3) 重置 SSH 连接。该命令可能需要一两分钟,所以请耐心等待。完成后,您应该会看到“状态:成功”消息。不要忘记更改“<>”括号中的所有内容:

Set-AzureVMExtension -ResourceGroupName "<ResourceName>" -VMName "<VMName>" -Location "<VMLocation>" -Name "VMAccessForLinux" -Publisher "Microsoft.OSTCExtensions" -ExtensionType "VMAccessForLinux" -TypeHandlerVersion "1.2" -SettingString "{}" -ProtectedSettingString '{"reset_ssh":true}'

4) 通过 Azure 门户重新启动 VM。

5) 设置新密码。请注意,此命令只会更改现有用户名的密码。它不会创建新用户。此命令也需要一段时间,并应生成“状态:成功”消息。更改“<>”括号中的所有内容,并不要忘记现有用户名和新密码:

$RGName = '<ResourceName>'
$VmName = '<VMName>'
$Location = '<VMLocation>'
$ExtensionName = 'VMAccessForLinux'
$Publisher = 'Microsoft.OSTCExtensions'
$Version = '1.2'
$PublicConf = '{}'

$PrivateConf = '{"username":"<ExistingUserName>", "password":"<NewPassword>", "ssh_key":"", "reset_ssh":false, "remove_user":""}'

Set-AzureVMExtension -ResourceGroupName $RGName -VMName $VmName -Location $Location -Name $ExtensionName -Publisher $Publisher -ExtensionType $ExtensionName -TypeHandlerVersion $Version -SettingString $PublicConf -ProtectedSettingString $PrivateConf

6)现在您应该能够使用新密码通过 SSH 进入 VM。

答案3

检查公网 IP 是否发生变化(如果 IP 未配置为静态,则会发生这种情况),以防使用该 IP 从 SSH 进行连接

最好使用 DNS 名称进行连接,您知道的对吗 :)

相关内容