Virtualbox: execute o vboxmanage no host do Windows via SSH?

0

Estou executando o VirtualBox 4.3.16 em um host do Windows 7 de 64 bits com alguns convidados do Linux.

Eu preciso ser capaz de emitir comandos poweroff de um convidado para outro, mas o comando vboxmanage não está funcionando quando executado através do servidor SSH do cygwin.

vboxmanage funciona como esperado quando executado em um shell cygwin no host, mas via SSH vboxmanage list vms não está dando saída e as VMs não podem ser acessadas.

Veja o que estou recebendo quando tento desligar uma VM por SSH:

$ 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

Tentar "anexar" a VM à conta sshd também não funciona:

$ 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

Todas as VMs foram criadas sob minha conta de usuário normal myuser . Eu também estou autenticando como myuser via SSH.

Eu acho que o problema é que o SSHD cygwin é executado como um usuário privilegiado cyg_server e algo não funciona corretamente no login quando a sessão é transferida para myuser .

Eu tentei executar o serviço SSHD cygwin como myuser , mas o serviço requer mais privilégios do que a conta parece e não executa.

Existe alguma solução para isso? Qualquer manipulação de variável de ambiente possível?

    
por André Fernandes 04.11.2014 / 14:15

2 respostas

1

Sim, isso é doloroso. Acabei fazendo um trabalho elaborado para isso precisamente por causa de todos os problemas em torno do VirtualBox, Cygwin, autenticação e os usuários que os serviços correspondentes executam.

Uma opção rápida para você, ative a rede entre as próprias VMs, para que o VBoxGuest1 possa fazer o login via SSH para o VBoxGuest2 diretamente e emitir o comando de desligamento correspondente.

Se isso não funcionar, você pode fazer o que eu fiz. Eu instalei VBoxVMService, fui para Serviços de componentes - > Computadores - > Meu computador - > Propriedades do aplicativo de configuração de DCOM & DCM e escolhi minha identidade. Então eu instalei o servidor Bitvise SSH (não o Cygwin .. então se você realmente quiser o Cygwin eu não saberia o que fazer). Agora tudo funciona perfeitamente. Pode ser um pouco longo para o que você quer fazer, mas eu gostaria que alguém fornecesse uma resposta também.

    
por 05.11.2014 / 04:19
0

Eu tive o mesmo problema descrito por André, usando o SSH (de um virtual CentOS 7 no mesmo host) no Windows 7 Pro via BitVise SSH Server.

Posso confirmar que a solução descrita por Hari definiu a identidade nas propriedades do Component Services- > Computers- > My Computer > DCOM Config- VirtualBox Application como "usuário interativo" (era originalmente em "usuário de lançamento") resolveu o problema (após uma reinicialização para ativar a mudança). Eu não precisei instalar o VBoxVMService.

Andy

    
por 15.11.2015 / 22:31