Wie starte ich VMWare-Maschinen oder andere Programme remote unter Windows per SSH?

Wie starte ich VMWare-Maschinen oder andere Programme remote unter Windows per SSH?

Ich habe eine schöne 8-Core-Windows-7-Maschine, auf der ich mehrere virtuelle Maschinen in VMWare Workstation bereitgestellt habe. Ich möchte die virtuelle Maschine remote starten können, indem ich etwas wie „vmrun -T ws H:\VMWare\VM1\VM1.vmx nogui“ ausführe. Ich kann davon ausgehen, dass immer ein Benutzer am Host angemeldet ist und es immer derselbe ist.

Der Befehl wird lokal einwandfrei ausgeführt, das Problem tritt jedoch auf, wenn ich versuche, ihn remote auszuführen.

Dies mit Cygwins SSH zu tun, ist unmöglich, da der virtuelle Computer irgendwie Zugriff auf den lokalen Bildschirm benötigt, was meines Wissens mit Cygwins SSH nicht möglich ist, da es als Windows-Dienst ausgeführt wird. Ich weiß, dass ich ein Anwendungspaar schreiben könnte, um das Problem zu umgehen, wobei eine beim Anmelden des Benutzers gestartet wird und die andere vom Remote-Benutzer aufgerufen wird, der Befehle per IPC an die erste sendet. Ich habe das starke Gefühl, dass jemand bereits eine solche Anwendung geschrieben hat, sodass ich keine Zeit damit verschwenden muss, das Rad neu zu erfinden.

Ich glaube nicht, dass andere Kommunikationswege, die auf Windows-Anmeldeinformationen basieren, sicher genug sind. Daher verwende ich lieber keine Tools wie psexec, die mit Rainbow Tables leicht abgehört und entschlüsselt werden können (ich habe keinen Radius-Server). Oder liege ich vielleicht falsch und sie sind tatsächlich sicher?

Antwort1

Ich mache genau das die ganze Zeit, indem ich Cygwin sshzum Port-Forwarding auf 3389 verwende. Dann können Sie sich per RDP mit Ihrer Workstation verbinden (die sich über den SSH-Tunnel befindet, sodass Ihre Bedenken bezüglich der Windows-Anmeldeinformationen zerstreut sein sollten), die VM-Workstation starten, die gewünschten VMs abspielen und wieder beenden.

Antwort2

Sie können den Befehl ganz einfach remote ausführen mitPsExec. Natürlich ist es auf die Authentifizierungsmechanismen von Windows angewiesen, um zu funktionieren.

Antwort3

Schließlich habe ich die Lösung gefunden, die mir am besten passt:

Der Punkt ist,nicht zusshd als Windows-Dienst ausführen, aber vom persönlichen Start des Benutzers aus (möglicherweise als verstecktes Fenster). Das ist alles. Der einzige Trick dabei ist, dass ich es als erhöhten Prozess ausführen muss.

Um Cygwin SSHD interaktiv in Windows 7 zu starten, müssen Sie diese Schritte befolgen. (Ich gehe davon aus, dass Cygwin installiert ist C:\cygwinund das opensshPaket enthält):

  1. Stellen Sie den sshdDienst im Applet „Verwaltungstools\Dienste“ auf „Manueller Start“ oder „Deaktiviert“ ein.
  2. C:\cygwin\var\emptyBesitz des Ordners übernehmen
  3. (optional – zum Debuggen) Stellen Sie sicher, dass /usr/bin/sshd -DSie SSH-Zugriff auf Ihren Host erhalten, wenn Sie die Cygwin-Eingabeaufforderung mit erhöhten Rechten ausführen.
  4. (optional – zum Debuggen) Stellen Sie sicher, dass Sie beim Starten C:\cygwin\bin\run -p C:\cygwin\bin /usr/sbin/sshd -Dvon einer Eingabeaufforderung mit erhöhten Rechten immer noch denselben Zugriff erhalten wie in Punkt 3. Denken Sie daran, den sshd.exeProzess anschließend mit dem Task-Manager zu beenden.
  5. Erstellen Sie eine neue Aufgabe, die diesen Befehl mit erhöhten Anmeldeinformationen direkt nach der Anmeldung ausführt. Siehein diesem Forumsthread erfahren Sie, wie das geht.
  6. Melden Sie sich per SSH vom Remote-Host an und führen Sie den vmrun -T ws start ...Befehl so aus, als würden Sie es lokal tun. Alles funktioniert wie erwartet.

Ich hoffe, es hilft denen unter Ihnen, die für die Durchführung administrativer Aufgaben lieber bei der SSH-Autorisierung bleiben.

Bitte beachten Sie, dass sich der Benutzer für die Funktion tatsächlich beim Host anmelden muss (ich glaube, dies sollte am besten interaktiv erfolgen (also nicht über RDP), habe diese Theorie jedoch nicht getestet). Daher ist diese Lösung am besten für Heimnetzwerke/kleine Büros geeignet und möglicherweise nicht für einen dedizierten Server, es sei denn, Sie konfigurieren ihn mit „Autologon“ (die automatische Anmeldung weist jedoch ihre eigenen Sicherheitsprobleme auf, die die Vorteile der Deaktivierung der $ADMIN-Freigabe leicht zunichte machen können).

verwandte Informationen