Démarrage du programme Windows GUI dans Windows via Cygwin sshd à partir du client ssh

10

Je voudrais ssh dans ma boîte Windows exécutant Cygwin sshd et exécuter l'application Windows GUI dans cette boîte Windows. Je ne veux pas de transfert X.

Par exemple, depuis le terminal ubuntu-server, je ssh dans Windows exécutant sshd puis je lance un notepad.exe. Le notepad.exe s'affichera dans Windows, pas dans ubuntu-server sans X windows.

Win Myo Htet
la source

Réponses:

12

La bonne méthode semble avoir un problème:

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

Réinstallez 'sshd' en spécifiant l'indicateur '-i' sur 'cygrunsrv' ou modifiez le service actuel sous "Outils d'administration" -> "Services" et cochez "Autoriser le service à interagir avec le bureau" dans l'onglet "Connexion" de l'onglet du service. "Propriétés".

Alors j'essaye de pirater. Je crée un cygwin_screen.cmd et le mets dans le dossier de démarrage de Windows.

@echo off 
C:
chdir C:\cygwin\bin
bash --login -i "/home/username/bin/start_screen.sh"

start_screen.sh est simple et il s'assurera que nous avons l'écran auquel nous attacher.

#!/bin/bash
screen -dmS "my_screen"

Maintenant, je peux me connecter à distance à Windows à partir du client ssh et me connecter à cet écran lorsque je veux exécuter l'application Windows GUI.

$screen -d -r my_screen

$notepad.exe
$cygstart my_doc.doc
Win Myo Htet
la source
Cette solution fonctionne pour moi, mais lorsque je me détache à nouveau, le processus d'écran client se bloque. Je dois ctrl-z out et tuer le processus. La création du démon dans un contexte (sur la fenêtre Windows) et la connexion à partir d'un autre (connexion ssh) semble créer ce problème. Créer puis attacher à partir de ma connexion ssh ne provoque pas le conflit.
Tim Rupe
1

Utilisez PSTools et exécutez la commande comme ci-dessous à partir du client SSL. ./PsExec.exe -i -d -s \\\\127.0.0.1 notepad

fx-kirin
la source
0

Ma solution est similaire à celle de Win Myo Htet, sauf qu'elle utilise tmux, qui a plus de flexibilité.

  1. Démarrez tmux sur un terminal Cygwin local.

    cygwin-host$ tmux

  2. Utilisez ssh pour exécuter la commande à distance, hébergée dans la session tmux.

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

énigmatiquePhysicien
la source