通过 PowerShell 在 Azure Linux VM 上运行 shell 命令

通过 PowerShell 在 Azure Linux VM 上运行 shell 命令

我在 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。

相关内容