Ich möchte per SSH auf meinen Windows-Rechner zugreifen, auf dem Cygwin sshd läuft, und die Windows-GUI-Anwendung in diesem Windows-Rechner ausführen. Ich möchte keine X-Weiterleitung.
Beispiel: Vom Ubuntu-Server-Terminal aus melde ich mich per SSH bei Windows an, führe SSHD aus und starte dann eine Datei „notepad.exe“. Die Datei „notepad.exe“ wird in Windows angezeigt, nicht jedoch in einem Ubuntu-Server ohne X Windows.
Antwort1
Mit der richtigen Methode scheint es ein Problem zu geben:
http://cygwin.com/ml/cygwin/2007-10/msg00334.html
Installieren Sie „sshd“ neu, indem Sie das Flag „-i“ für „cygrunsrv“ angeben, oder bearbeiten Sie den aktuellen Dienst unter „Verwaltung“ -> „Dienste“ und aktivieren Sie „Dienst darf mit Desktop interagieren“ auf der Registerkarte „Anmelden“ der „Eigenschaften“ des Dienstes.
Also versuche ich es mit einem Hack. Ich erstelle eine Datei cygwin_screen.cmd und lege sie in den Windows-Startordner.
@echo off
C:
chdir C:\cygwin\bin
bash --login -i "/home/username/bin/start_screen.sh"
start_screen.sh ist einfach und stellt sicher, dass wir den Bildschirm zum Anhängen haben.
#!/bin/bash
screen -dmS "my_screen"
Jetzt kann ich mich per Remote-Zugriff vom SSH-Client aus bei Windows anmelden und eine Verbindung zu diesem Bildschirm herstellen, wenn ich die Windows-GUI-Anwendung ausführen möchte.
$screen -d -r my_screen
$notepad.exe
$cygstart my_doc.doc
Antwort2
VerwendenPSToolsund führen Sie den Befehl wie unten vom SSL-Client aus.
./PsExec.exe -i -d -s \\\\127.0.0.1 notepad
Antwort3
Meine Lösung ähnelt der von Win Myo Htet, verwendet jedoch tmux, das flexibler ist.
Starten Sie tmux auf einem lokalen Cygwin-Terminal.
cygwin-host$ tmux
Verwenden Sie SSH, um den Befehl remote auszuführen, gehostet in der Tmux-Sitzung.
other-host$ ssh cygwin-host tmux new-window notepad