Virtualbox: Führen Sie vboxmanage auf dem Windows-Host über SSH aus?

0

Ich verwende virtualbox 4.3.16 auf einem Windows 7 64-Bit-Host mit einigen Linux-Gästen.

Ich muss in der Lage sein, Ausschaltbefehle von einem Gast an einen anderen zu senden, aber der vboxmanageBefehl funktioniert nicht, wenn er über den SSH-Server von cygwin ausgeführt wird.

vboxmanageFunktioniert wie erwartet, wenn es in einer Cygwin-Shell auf dem Host ausgeführt wird, aber über SSH vboxmanage list vmskeine Ausgabe erfolgt und auf VMs nicht zugegriffen werden kann.

Folgendes bekomme ich, wenn ich versuche, eine VM über SSH herunterzufahren:

$ vboxmanage --nologo controlvm "rsfe1" poweroff
vboxmanage.exe: error: Could not find a registered machine named 'rsfe1'
vboxmanage.exe: error: Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), component VirtualBox, interface IVirtualBox, callee IUnknown
vboxmanage.exe: error: Context: "FindMachine(Bstr(a->argv[0]).raw(), machine.asOutParam())" at line 95 of file VBoxManageControlVM.cpp

Der Versuch, die VM an das sshd-Konto anzuhängen, funktioniert ebenfalls nicht:

$ vboxmanage registervm "d:\virtual machines\rsfe1\rsfe1.vbox"
vboxmanage.exe: error: A differencing image of snapshot {10077c46-d5cf-4402-88c0-f0458dd07f74} could not be found. Could not find an open hard disk with UUID {9404b00e-7b04-460f-8a62-6495885744de}
vboxmanage.exe: error: Details: code E_FAIL (0x80004005), component SnapshotMachine, interface IMachine, callee IUnknown
vboxmanage.exe: error: Context: "OpenMachine(Bstr(a->argv[0]).raw(), machine.asOutParam())" at line 88 of file VBoxManageMisc.cpp

Alle VMs wurden unter meinem regulären Benutzerkonto erstellt myuser. Ich authentifiziere mich auch als myuserüber SSH.

Ich denke, das Problem ist, dass die Cygwin-SSHd als privilegierter Benutzer ausgeführt wird cyg_serverund beim Anmelden etwas nicht funktioniert, wenn die Sitzung übertragen wird myuser.

Ich habe versucht, den cygwin SSHd-Dienst auszuführen, myuseraber der Dienst erfordert anscheinend mehr Berechtigungen als der Account und läuft nicht.

Gibt es dafür eine Lösung? Irgendeine mögliche Manipulation von Umgebungsvariablen?

André Fernandes
quelle

Antworten:

1

Ja, das ist schmerzhaft. Ich habe mich genau wegen all der Probleme mit VirtualBox, Cygwin, Authentifizierung und den Benutzern, unter denen die entsprechenden Dienste ausgeführt werden, um dieses Problem gekümmert.

Eine schnelle Möglichkeit für Sie, das Netzwerk zwischen den VMs selbst zu aktivieren, damit sich VBoxGuest1 direkt über SSH bei VBoxGuest2 anmelden und den entsprechenden Befehl zum Herunterfahren ausgeben kann.

Wenn das nicht funktioniert, kannst du das tun, was ich getan habe. Ich habe VBoxVMService installiert, bin zu Komponentendienste-> Computer-> Arbeitsplatz-> DCOM-Konfiguration-> Eigenschaften der VirtualBox-Anwendung gegangen und habe meine Identität ausgewählt. Dann habe ich den Bitvise-SSH-Server installiert (nicht Cygwin. Wenn Sie also Cygwin wirklich wollen, würde ich nicht wissen, was zu tun ist). Jetzt funktioniert alles reibungslos. Könnte ein wenig langwierig sein, was Sie tun möchten, aber ich würde mich freuen, wenn jemand anderes auch eine Antwort liefert.

Hari Sundararajan
quelle
Können Sie etwas mehr Details über die VBoxVMService-Lösung und deren Anpassung an dieses spezielle Problem geben?
André Fernandes
Grundsätzlich ermöglicht mir das Setup, SSH auf meinem Windows-Host auszuführen und VBoxManage-Befehle zur Steuerung der VMs auszuführen. Durch die Installation von VBoxVMService kann ich den VBox-Dienst beim Booten ausführen. Da meine Windows-Box kopflos ist, hilft dies. Ich habe jeden Dienst ausschließlich unter meiner Benutzerauthentifizierung ausgeführt, nicht unter einem globalen oder "Administrator". Ich installiere den VBoxVMService und starte ihn beim Start.
Hari Sundararajan
Wenn ich das richtig verstanden habe, können Sie vboxmanageeine Bitvise-SSH-Sitzung ausführen, unabhängig davon, ob Sie vboxvmservice verwenden oder nicht?
André Fernandes
Guter Punkt. Ich weiß nicht. Möglicherweise ist es nicht erforderlich, VBoxVMService auszuführen. Möglicherweise wird nur der Bitvise-SSH-Server mit denselben Berechtigungen ausgeführt, die für das VBoxManage-Tool erforderlich sind. Ich brauchte den VBoxVM-Dienst, um einige VMs beim Booten automatisch zu starten, damit das möglicherweise nichts mit dem zu tun hat, was Sie brauchen.
Hari Sundararajan
0

Ich hatte das gleiche Problem wie von André beschrieben, mit SSH (von einem virtuellen CentOS 7 auf demselben Host) über BitVise SSH Server in Windows 7 Pro.

Ich kann bestätigen, dass die von Hari beschriebene Lösung, die Identität in den Komponentendiensten-> Computer-> Arbeitsplatz-> DCOM-Konfiguration-> VirtualBox-Anwendungseigenschaften auf "Interaktiver Benutzer" (ursprünglich auf "Startbenutzer" eingestellt) gelöst wurde das Problem (nach einem Neustart, um die Änderung zu aktivieren). Ich musste VBoxVMService nicht installieren.

Andy

Andreas Maier
quelle
Das Q & A-Format der Site reserviert Antworten für Lösungen der Frage, und jede Antwort sollte etwas Neues beitragen. Der Weg, um anzuzeigen, dass eine Antwort nützlich war, besteht darin, die Antworten, die Sie mögen, zu verbessern.
Fixer1234