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

0

Tenho uma bela máquina Windows 8 de 8 núcleos, na qual implantei várias máquinas virtuais no VMWare Workstation. Eu quero ser capaz de lançar a máquina virtual remotamente, executando algo como "vmrun -T ws H: \ VMWare \ VM1 \ VM1.vmx nogui". Eu posso supor que há sempre um usuário logado no host, e é sempre o mesmo.

O comando é executado 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 acessar a tela local, o que, no meu conhecimento, é impossível no ssh do cygwin, já que ele está rodando como serviço do Windows. Eu sei, que eu poderia escrever um par de aplicativos para contornar o problema, um lançado no login do usuário e o outro chamado pelo usuário remoto que envia comandos para o primeiro pelo IPC. Eu tenho um strong sentimento de que alguém já escreveu tal aplicação, então eu não preciso perder tempo reinventando a roda.

Eu não acho que outras formas de comunicação que dependem de credenciais do Windows sejam seguras o suficiente, então eu 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 estão realmente seguros?

    
por Adam Ryczkowski 18.04.2012 / 11:34

3 respostas

0

Finalmente, encontrei a solução que melhor combina comigo:

O objetivo é não executar 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. (Eu suponho que o cygwin está instalado em C:\cygwin e que contém o pacote openssh ):

  1. Defina o serviço sshd no applet Ferramentas administrativas \ serviços como "Inicialização manual" ou "Desativado"
  2. Apropriar-se da pasta C:\cygwin\var\empty
  3. (opcional - para depuração) Certifique-se de que, quando você executar /usr/bin/sshd -D sob prompt elevado do cygwin, 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 -D do prompt de comando elevado ainda obtenha o mesmo acesso que no ponto 3. Lembre-se de eliminar o processo sshd.exe usando o gerenciador de tarefas.
  5. Crie uma nova tarefa que ative esse comando sob credenciais elevadas logo após o login. Veja este tópico do fórum para ver como fazer isso
  6. Faça login com ssh do host remoto e execute o comando vmrun -T ws start ... como faria localmente, e tudo funciona conforme o esperado.

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

Por favor, note que para que funcione o usuário precisa realmente fazer o login no host (eu acredito que é melhor fazê-lo de forma interativa (ou seja, não através do rdp), mas eu não testei esta teoria) Portanto, essa solução é mais adequada para redes domésticas e de pequenos escritórios, e talvez não seja adequada para um servidor dedicado, a menos que você a configure com "autologon" (mas o autologon tem problemas de segurança que podem facilmente compensar os benefícios da desativação Compartilhamento $ ADMIN)

    
por 20.04.2012 / 10:47
0

Eu faço exatamente isso o tempo todo usando Cygwin ssh para porta-forward para 3389. Então você pode RDP em sua estação de trabalho (que está sobre o túnel ssh, de modo que deve acalmar suas preocupações sobre as credenciais do Windows), iniciar a estação de trabalho e o jogo VM e VMs que você quer e saia.

    
por 18.04.2012 / 11:50
0

Você pode executar o comando remotamente com facilidade usando PsExec . Claro, ele depende dos mecanismos de autenticação do Windows para trabalhar.

    
por 18.04.2012 / 14:09