在PowerShell上的Azure Linux VM上运行shell命令

我在Microsoft Azure上有一个Linux服务器。 这是一个Ubuntu 14服务器。 显然,我已经做了错误的UFW(防火墙)configuration,现在我不能ssh进入机器。 我需要禁用防火墙才能回到机器。 我假设我现在唯一的select是尝试通过PowerShell来实现,因为Azure不提供任何KVM访问。

这可能吗? 我怎样才能通过PowerShell执行一个shell命令?

无法从VM外部的Azure虚拟机上运行命令; 也没有VM控制台访问。 不幸的是,这在Azure中是一个非常大的限制。

如果您不小心将自己locking在虚拟机之外,那么恢复虚拟机的唯一方法是下载虚拟磁盘并在本地Hyper-V服务器上运行该虚拟磁盘,在该服务器上可以访问控制台并修复任何错误; 或者,如果问题可以脱机修复(通过编辑configuration文件),您可以将该磁盘附加到另一个Azure虚拟机,然后从该虚拟机进行处理。

如果您已经安装了自定义脚本扩展 ,您可以使用它来禁用或configuration您的防火墙。

编辑 @massimo已经回答了这个(我没有意识到他涵盖了附加磁盘解决scheme)。 但是,因为我已经input了这个,所以我将在这里留下答案,因为它包含了一些关于从locking的VM中附加磁盘的更多细节。


要locking虚拟机的磁盘,可以删除虚拟机(但不能删除磁盘/ vhd或任何连接的磁盘),这会破坏vhd页面上的租约。 然后,您应该能够将vhd作为附加磁盘附加到正在运行的Linux VM上。 此时,您应该能够访问磁盘上的文件。

我对防火墙configuration一无所知,如果能够以这种方式进行修改,至less可以进行文件级的访问。

在许多情况下,Azure提供了扩展来恢复对Linux VM的访问。 与@proteus提到的一样,与自定义脚本联合使用,您应该可以在不重新创build虚拟机的情况下解决这个问题。