Como iniciar máquinas VMWare ou qualquer outro programa remotamente no Windows por ssh?

Como iniciar máquinas VMWare ou qualquer outro programa remotamente no Windows por ssh?

Eu tenho uma bela máquina Windows 7 de 8 núcleos onde implantei várias máquinas virtuais no VMWare Workstation. Quero poder iniciar a máquina virtual remotamente, executando algo como "vmrun -T ws H:\VMWare\VM1\VM1.vmx nogui". Posso assumir que sempre há um usuário logado no host, e é sempre o mesmo.

O comando funciona bem localmente, mas o problema é quando tento executá-lo remotamente.

Fazer isso com o ssh do cygwin é impossível, porque de alguma forma o vmrun precisa de acesso à tela local, o que, pelo que sei, é impossível no ssh do cygwin, pois está rodando como serviço do Windows. Eu sei que poderia escrever um par de aplicativos para contornar o problema, um iniciado no login do usuário e outro invocado pelo usuário remoto que envia comandos ao primeiro pelo IPC. Tenho uma forte sensação de que alguém já escreveu tal aplicativo, então não preciso perder tempo reinventando a roda.

Não acho que outras formas de comunicação que dependem de credenciais do Windows sejam seguras o suficiente, então prefiro não usar ferramentas como psexec, que podem ser facilmente detectadas e descriptografadas com tabelas Rainbow (não tenho servidor radius). Ou talvez eu esteja errado e eles estejam realmente seguros?

Responder1

Eu faço exatamente isso o tempo todo usando o Cygwin sshpara encaminhar a porta para 3389. Então você pode fazer RDP em sua estação de trabalho (que fica no túnel ssh, então isso deve acalmar suas preocupações sobre as credenciais do Windows), iniciar a estação de trabalho VM e jogar e VMs que você deseja e saia.

Responder2

Você pode executar comandos remotamente com bastante facilidade usandoPsExec. Claro, ele depende dos mecanismos de autenticação do Windows para funcionar.

Responder3

Finalmente encontrei a solução que melhor me convém:

O ponto énão paraexecute o sshd como um serviço do Windows, mas a partir da inicialização pessoal do usuário (possivelmente como uma janela oculta). Isso é tudo. O único truque aqui é que preciso executá-lo como um processo elevado.

Para iniciar o cygwin sshd interativamente no Windows 7, é necessário seguir estas etapas. (Presumo que o cygwin esteja instalado C:\cygwine contenha o opensshpacote):

  1. Defina o sshdserviço no miniaplicativo Ferramentas Administrativas\serviços como "Iniciação manual" ou "Desativado"
  2. Assumir a propriedade da C:\cygwin\var\emptypasta
  3. (opcional - para depuração) Certifique-se de que, ao executar /usr/bin/sshd -Dsob o prompt elevado do cygwin, você obtenha acesso ssh ao seu host.
  4. (opcional - para depuração) Certifique-se de que, ao iniciar C:\cygwin\bin\run -p C:\cygwin\bin /usr/sbin/sshd -Da partir do prompt de comando elevado, você ainda obtenha o mesmo acesso do ponto 3. Lembre-se de encerrar o sshd.exeprocesso posteriormente usando o gerenciador de tarefas.
  5. Crie uma nova tarefa que inicie este comando com credenciais elevadas logo após o login. Vereste tópico do fórum para ver como fazer isso
  6. Faça login com ssh no host remoto e execute o vmrun -T ws start ...comando como faria localmente, e tudo funcionará conforme o esperado.

Espero que ajude aqueles que preferem manter a autorização ssh para realizar tarefas administrativas.

Observe que, para que funcione, o usuário precisa realmente fazer login no host (acredito que seja melhor fazer isso de forma interativa (ou seja, não por meio de rdp), mas não testei essa teoria), portanto, esta solução é mais adequada para casa /rede de pequeno escritório, e talvez não seja adequada para um servidor dedicado, a menos que você o configure com "autologon" (mas o autologon tem seus próprios problemas de segurança que podem facilmente compensar os benefícios de desabilitar o compartilhamento $ADMIN)

informação relacionada