J'ai une belle machine Windows 7 à 8 cœurs sur laquelle j'ai déployé plusieurs machines virtuelles dans VMWare Workstation. Je souhaite pouvoir lancer la machine virtuelle à distance, en exécutant une opération du type "vmrun -T ws H: \ VMWare \ VM1 \ VM1.vmx nogui". Je peux supposer qu’un utilisateur est toujours connecté à l’hôte et que c’est toujours le même.
La commande fonctionne correctement localement, mais le problème vient du fait que j'essaie de l'exécuter à distance.
Faire cela avec ssh de cygwin est impossible, car vmrun a besoin d'accéder à l'écran local, ce qui, à ma connaissance, est impossible dans ssh de cygwin, car il s'exécute en tant que service Windows. Je sais que je pourrais écrire deux applications pour contourner le problème, l'une lancée lors de la connexion de l'utilisateur et l'autre invoquée par l'utilisateur distant qui envoie des commandes à la première par IPC. J'ai le sentiment que quelqu'un a déjà écrit une telle application, alors je n'ai pas besoin de perdre du temps à réinventer la roue.
Je ne pense pas que les autres moyens de communication qui reposent sur les informations d'identification Windows soient suffisamment sûrs. Par conséquent, je préfère ne pas utiliser d'outils tels que psexec qui peuvent être facilement détectés et déchiffrés à l'aide de tables arc-en-ciel (je n'ai pas de serveur Radius). Ou peut-être je me trompe et ils sont en sécurité?
Vous pouvez exécuter la commande à distance assez facilement en utilisant
PsExec
. Bien entendu, il dépend des mécanismes d’authentification Windows pour fonctionner.la source
Enfin, j'ai trouvé la solution qui me convient le mieux:
Le but est de ne pas exécuter sshd en tant que service Windows, mais à partir du démarrage personnel de l'utilisateur (éventuellement en tant que fenêtre masquée). C'est tout. La seule astuce ici est que je dois l'exécuter en tant que processus élevé.
Pour lancer cygwin sshd de manière interactive dans Windows 7, procédez comme suit. (Je suppose que cygwin est installé sur
C:\cygwin
et qu’il contient leopenssh
paquet):sshd
service dans l'applet Outils d'administration \ services sur "Lancement manuel" ou "Désactivé"C:\cygwin\var\empty
dossier/usr/bin/sshd -D
une invite cygwin élevée, vous obtenez un accès ssh à votre hôte.C:\cygwin\bin\run -p C:\cygwin\bin /usr/sbin/sshd -D
partir d'une invite de commande avec privilèges élevés, vous obtenez toujours le même accès qu'au point 3. N'oubliez pas de tuer lesshd.exe
processus par la suite à l'aide du gestionnaire de tâches.vmrun -T ws start ...
commande comme vous le feriez localement, et tout fonctionne comme prévu.J'espère que cela aidera ceux d'entre vous qui préfèrent s'en tenir à l'autorisation de ssh pour effectuer des tâches administratives.
Veuillez noter que pour que cela fonctionne, l'utilisateur doit réellement se connecter à l'hôte (je pense qu'il est préférable de le faire de manière interactive (c'est-à-dire sans passer par le protocole RDP), mais je n'ai pas testé cette théorie); cette solution convient donc mieux à la maison. / small office network, et peut-être ne convient-il pas à un serveur dédié, à moins que vous ne le configuriez avec "autologon" (mais la connexion automatique a ses propres problèmes de sécurité qui peuvent facilement neutraliser les avantages de la désactivation du partage $ ADMIN)
la source