我在 Microsoft Azure 上有一台 Linux 服务器。它是一台 Ubuntu 14 服务器。显然,我对 UFW(防火墙)配置出了点问题,现在我根本无法通过 ssh 进入机器。我需要禁用防火墙才能重新进入机器。我认为我现在唯一的选择是尝试通过 PowerShell 来做到这一点,因为 Azure 不提供任何 KVM 访问。
这可能吗?如何通过 PowerShell 执行 shell 命令?
答案1
无法从虚拟机外部对 Azure 虚拟机运行命令;也没有虚拟机控制台访问权限。不幸的是,这是 Azure 的一个非常大的限制。
如果您意外地将自己锁定在 VM 之外,则恢复它的唯一方法是下载其虚拟磁盘并在本地 Hyper-V 服务器上运行它,您可以在其中访问控制台并修复任何错误;或者,如果可以离线修复问题(例如通过编辑配置文件),您可以将磁盘附加到另一个 Azure VM 并从那里对其进行处理。
答案2
如果您已经安装了自定义脚本扩展,您可以使用它来禁用或配置您的防火墙。
答案3
编辑@massimo 已经回答了这个问题(我没有意识到他涵盖了附加磁盘解决方案)。但是,由于我已经输入了这个问题,我将在这里留下答案,因为它包含有关从锁定的虚拟机附加磁盘的更多详细信息...
如果你被锁定,要访问虚拟机的磁盘,你可以删除虚拟机(但不是删除磁盘/vhd 或任何附加的磁盘),这将中断保存 vhd 的页面 blob 的租约。然后,您应该能够将 vhd 作为附加磁盘附加到正在运行的 Linux VM。此时,您应该能够访问磁盘上的文件。
我对防火墙配置一无所知,也不知道您是否可以通过这种方式进行更改,但至少您可以拥有文件级别的访问权限。
答案4
Azure 提供了扩大在许多情况下恢复对 Linux VM 的访问。正如 @proteus 提到的,结合自定义脚本,您应该能够修复此问题而无需重新创建 VM。