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
):
- Defina o serviço
sshd
no applet Ferramentas administrativas \ serviços como "Inicialização manual" ou "Desativado" - Apropriar-se da pasta
C:\cygwin\var\empty
- (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. - (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 processosshd.exe
usando o gerenciador de tarefas. - 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
- 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)