Starten des Windows-GUI-Programms in Windows über Cygwin sshd vom ssh-Client


10

Ich möchte in meine Windows-Box ssh ausführen, in der Cygwin sshd ausgeführt wird, und die Windows-GUI-Anwendung in dieser Windows-Box ausführen. Ich möchte keine X-Weiterleitung.

zB Vom Ubuntu-Server-Terminal ssh in Windows mit sshd und starte dann eine notepad.exe. Die notepad.exe wird unter Windows angezeigt, nicht auf dem Ubuntu-Server ohne X-Fenster.

Antworten:


12

Die richtige Methode scheint ein Problem zu haben:

http://cygwin.1069669.n5.nabble.com/Windows-GUI-programs-eg-notepad-start-but-are-invisible-after-ssh-login-td56256.html

http://cygwin.com/ml/cygwin/2007-10/msg00334.html

Installieren Sie 'sshd' neu, indem Sie das '-i'-Flag auf' cygrunsrv 'setzen, oder bearbeiten Sie den aktuellen Dienst unter "Verwaltung" -> "Dienste" und aktivieren Sie auf der Registerkarte "Anmelden" des Dienstes die Option "Dienst mit Desktop interagieren lassen" "Eigenschaften".

Also versuche ich es mit einem Hack. Ich erstelle eine 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 vom SSH-Client aus remote bei Windows anmelden und an diesen Bildschirm anhängen, wenn ich die Windows-GUI-Anwendung ausführen möchte.

$screen -d -r my_screen

$notepad.exe
$cygstart my_doc.doc

Diese Lösung funktioniert für mich, aber wenn ich mich wieder trenne, hängt der Client-Bildschirmprozess. Ich muss Strg-Z raus und den Prozess beenden. Das Erstellen des Dämons in einem Kontext (in der Windows-Box) und das Anhängen von einem anderen Kontext (SSH-Anmeldung) scheint dieses Problem zu verursachen. Das Erstellen und anschließende Anhängen von meiner SSH-Verbindung verursacht den Konflikt nicht.
Tim Rupe

1

Verwenden Sie PSTools und führen Sie den folgenden Befehl vom SSL-Client aus. ./PsExec.exe -i -d -s \\\\127.0.0.1 notepad


0

Meine Lösung ähnelt der von Win Myo Htet, verwendet jedoch tmux, das flexibler ist.

  1. Starten Sie tmux auf einem lokalen Cygwin-Terminal.

    cygwin-host$ tmux

  2. Verwenden Sie ssh, um den Befehl remote auszuführen, der in der tmux-Sitzung gehostet wird.

    other-host$ ssh cygwin-host tmux new-window notepad

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.