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.

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

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


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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.