11 votes

Démarrer un programme GUI Windows sous Windows via Cygwin sshd depuis un client ssh

Je voudrais faire une connexion ssh sur ma machine Windows ex?cutant Cygwin sshd et ex?cuter l'application GUI Windows sur cette machine Windows. Je ne veux pas de transfert X.

par exemple. Depuis le terminal ubuntu-server, je fais une connexion ssh sur Windows ex?cutant sshd et ensuite je lance notepad.exe. Le notepad.exe s'affichera sur Windows, pas sur ubuntu-server sans fen?tres X.

12voto

Win Myo Htet Points 387

La méthode appropriée semble avoir un problème :

http://cygwin.1069669.n5.nabble.com/Windows-GUI-programs-e-g-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 le drapeau '-i' à 'cygrunsrv' ou modifiez le service actuel sous "Outils d'administration"->"Services" et cochez "Autoriser le service à interagir avec le bureau" dans l'onglet "Connexion" des "Propriétés" du service.

Alors, j'essaie une astuce. Je crée un fichier cygwin_screen.cmd et le place 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 s'assurera que nous ayons l'écran auquel nous pouvons nous connecter.

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

Maintenant, je peux me connecter à distance sur Windows depuis le client ssh et me connecter à cet écran quand je veux exécuter l'application GUI Windows.

$screen -d -r my_screen

$notepad.exe
$cygstart my_doc.doc

0 votes

Cette solution fonctionne pour moi, mais lorsque je détache à nouveau, le processus d'écran client se bloque. Je dois faire un ctrl-z pour sortir, puis tuer le processus. Créer le démon dans un contexte (sur la boîte Windows) et attacher depuis un autre (connexion ssh) semble créer ce problème. Créer puis attacher depuis ma connexion ssh ne cause pas de conflit.

2voto

Brijesh Points 21

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

0voto

Vagif Abilov Points 2429

Ma solution est similaire à celle de Win Myo Htet, sauf qu'elle utilise tmux, qui offre 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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X