如何通过 SSH 在 Windows 上运行 VirtualBox VM

如何通过 SSH 在 Windows 上运行 VirtualBox VM

我的 Windows 机器上有一个 Ubuntu 服务器虚拟机,我能够在 Windows 机器上毫无问题地运行 VirtualBox,然后我可以通过 SSH 进入新创建的服务器。但是,我试图通过 SSH 进入我的 Windows 机器(我安装了 SSH 服务器)并通过运行以下命令启动 VirtualBox:

cd C:/Program Files/oracle/virtualbox
virtualbox --vm <virtual machine ID>

我使用的机器 ID 与使用 VirtualBox 机器管理器创建快捷方式时使用的机器 ID 相同。

当我执行此操作时,虚拟机的 GUI 不会出现。检查任务管理器进程选项卡,如果我单击显示所有用户,我只能看到 VirtualBox 进程,但是显示的进程是在与我的帐户相同的用户名下运行的。

尝试与新服务器建立 SSH 连接不起作用。使用 nmap 对我的网络进行 ping 扫描似乎没有显示任何新主机。

我想补充一点,直接在 Windows 命令提示符中使用与上述相同的命令即可启动 VM,没有任何问题。

编辑

我已按照说明进行操作并virtualbox改为VBoxHeadless --startvm 8b2db 9b3-5907-431f-b25c-44ea9cade05d

通过 ssh 执行此操作会出现错误:

Invalid machine name or UUID!

但是 UUID 与我桌面上的快捷方式中使用的 UUID 相同,只需双击 .bat 文件就可以运行。

我怀疑问题可能是由我的 ssh 服务器在管理环境下运行引起的。我使用的是“bitvise ssh 服务器”

进一步检查发现,在 Windows 命令提示符中,我VBoxMange list vms既可以以标准用户身份运行,也可以以管理员身份运行。但是在 cygwin 中运行它却没有任何结果,通过 ssh 运行它(无论是在 cygwin 终端还是命令提示符中)也不会返回任何结果。

答案1

那么,如果它对你有用,为什么不把它作为答案呢。(:

使用没有 GUI 的 VirtualBox 的解决方案是VBoxHeadless。尽管还有更舒适的选择,例如 phpVirtualBox。

VBoxHeadless与 配合使用,VBoxManage为 VirtualBox 功能提供完整的接口。要启动虚拟机,需要注册虚拟机。可以使用 列出已注册的虚拟机VBoxManage list vms

答案2

  1. 检查文件夹:C:\Windows\System32\config\systemprofile.VirtualBox 是否存在。如果此文件夹仅继承日志文件 - 删除整个文件夹或将其移动到新位置

  2. 现在从命令行将正确的文件夹链接到此位置(是的,使用 ntfs 就可以做到):

    mklink /j C:\Windows\System32\config\systemprofile.VirtualBox C:\Users\Administrator.VirtualBox

(将管理员替换为您运行虚拟机的帐户名)


ssh shell 使用文件夹 C:\Windows\System32\config\systemprofile.VirtualBox 作为其 virtualbox 文件夹,而通常的管理员登录使用 C:\Users\Administrator.VirtualBox。如果您可以通过命令行管理您的 virtualbox 机器,您只需将文件从 C:\Users\Administrator.VirtualBox 移动到 C:\Windows\System32\config\systemprofile.VirtualBox 并忽略上面的链接。

相关内容