Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
640 connectés 

  FORUM HardWare.fr
  Réseaux grand public / SoHo
  Réseaux

  SSH : Lancement d'une appli graphique sur PC distant

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

SSH : Lancement d'une appli graphique sur PC distant

n°1099886
jojo_le_ha​ricot
Posté le 11-12-2019 à 16:40:47  profilanswer
 

Bonjour,
 
Voici ma problématique : via une simple commande je souhaite pouvoir lancer une application sur un PC distant (sous Windows 10 et sur le même réseau local) tout en ayant la fenêtre de l'appli visible sur l'écran distant.
 
Pour résumer ma demande le plus simplement possible :  
PC A --> commande SSH --> PC B (sous Win 10) : affichage de l'appli graphique sur PC B (sous Win 10)
Le PC A ne sert qu'à envoyer la commande.
 
Le PC B tourne sous Win 10 avec cygwin installé avec les paquets openssh et x11
 
Et je ne parviens donc qu'à exécuter en arrière plan (sans l'interface graphique) le programme avec la commande suivante envoyée depuis le PC A :

Code :
  1. ssh -XC user@ip DISPLAY=:0 notepad.exe


 
Commande puis-je avoir l'interface graphique de l'appli  (notepad dans l'exemple) qui s'affiche sur l'écran du PC B (distant) ?

Message cité 1 fois
Message édité par jojo_le_haricot le 12-12-2019 à 09:37:28

---------------

mood
Publicité
Posté le 11-12-2019 à 16:40:47  profilanswer
 

n°1099891
JeffBlagna​c
xargs et awk, c'est la vie
Posté le 11-12-2019 à 17:36:42  profilanswer
 

Il n'y a pas une histoire de faire un truc genre
export DISPLAY=:0
En tout cas sur Unix/X11, j'ai des vagues souvenirs de ça ...
Par contre sous Windows, jamais fait de SSH mais peut-être il y a un truc du style aussi ...


Message édité par JeffBlagnac le 11-12-2019 à 17:38:01

---------------
[Topic Unique] ZOTAC ZBOX ID18 - Mon topic A/V et DONS
n°1099892
jay31790
Posté le 11-12-2019 à 17:39:31  profilanswer
 

Tu peux essayer dans ta commande de préciser le display sur lequel tu souhaites faire apparaître la fenêtre (mais je ne suis pas sûr que cela fonctionne).
 
Exemple :  
ssh -X user@adressip "export DISPLAY=adressip:0.0; notepad.exe"
 
Je ne suis pas sûr que le "-X" soit utile puisqu'il permet de rediriger l'affichage de la commande sur ton display local.
 
edit:  [:benou_grilled] par l'ancêtre


Message édité par jay31790 le 11-12-2019 à 17:40:01

---------------
Achats/Ventes
n°1099913
jojo_le_ha​ricot
Posté le 11-12-2019 à 21:43:13  profilanswer
 

Merci les toulousaing de jeter un oeil !
 
Donc j'ai bien testé avec le DISPLAY=:0 et toutes les variantes possibles dont la commande proposée par jay31790 mais ça ne fonctionne pas.
 
D'ailleurs quand je fais un echo $DISPLAY je n'ai aucun retour...


---------------

n°1099921
XaTriX
Posté le 11-12-2019 à 22:34:14  profilanswer
 

jojo_le_haricot a écrit :

Bonjour,
 
Voici ma problématique : via une simple commande je souhaite pouvoir lancer une application sur un PC distant (sous Windows 10 et sur le même réseau local) tout en ayant la fenêtre de l'appli visible sur l'écran distant.
 
Actuellement j'ai donc un serveur SSH sur le PC distant (testé avec le serveur SSH Windows 10 ou Cygwin). Je parviens a m'y connecter sans problème, à envoyer des commandes, mais lorsque je lance une appli elle s'exécute uniquement en arrière plan. (Je précise que j'utilise le même user pour la session ssh que pour la session locale)
 
Exemple : En envoyant la commande ci dessous je souhaiterais donc voir apparaitre la fenêtre du bloc note s'afficher or le programme n'est visible que dans le gestionnaire des tâches du PC distant.
ssh -X user@adresseip notepad.exe
 
 
Si quelqu'un a une piste a m'indiquer...


Vous pouvez répéter la question ? [:dawao]


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
n°1099923
XaTriX
Posté le 11-12-2019 à 22:42:25  profilanswer
 

T'utilises WSL 1 ou 2 ?
En face tu utilises WSL 1 ou 2 ? Si WSL pourquoi pas un openssh-server ?
Avoir une fenêtre en local il faut effectivement régler la variable d'environnement DISPLAY.
Quand tu sur ton bash en local, fait effectivement :

export DISPLAY=:0

 

Et teste déjà en local si ton affichage marche bien.

 

Soit avec x11-apps soit terminator (terminal sur python2.x)

sudo apt install x11-apps -y


Puis tester avec xeyes :D

xeyes &

 

Déjà valider cette étape

Message cité 1 fois
Message édité par XaTriX le 11-12-2019 à 22:48:21

---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
n°1099925
JeffBlagna​c
xargs et awk, c'est la vie
Posté le 11-12-2019 à 22:45:18  profilanswer
 

T'as un xeyes de pirate avec un seul œil toi pour l'écrire xeye ? :D


---------------
[Topic Unique] ZOTAC ZBOX ID18 - Mon topic A/V et DONS
n°1099926
XaTriX
Posté le 11-12-2019 à 22:46:42  profilanswer
 

Je sais pas j'ai même pas un linux ou un win sous la main :D


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
n°1099946
jojo_le_ha​ricot
Posté le 12-12-2019 à 09:25:31  profilanswer
 

XaTriX a écrit :


Vous pouvez répéter la question ? [:dawao]


 

XaTriX a écrit :

T'utilises WSL 1 ou 2 ?
En face tu utilises WSL 1 ou 2 ? Si WSL pourquoi pas un openssh-server ?
Avoir une fenêtre en local il faut effectivement régler la variable d'environnement DISPLAY.
Quand tu sur ton bash en local, fait effectivement :

export DISPLAY=:0


 
Et teste déjà en local si ton affichage marche bien.
 
Soit avec x11-apps soit terminator (terminal sur python2.x)

sudo apt install x11-apps -y


Puis tester avec xeyes :D

xeyes &


 
Déjà valider cette étape


 
Pour résumer ma demande le plus simplement possible :  
Envoi d'une commande depuis PC A vers PC B (sous Win 10) avec affichage de l'appli graphique sur PC B (sous Win 10)
Le PC A ne sert qu'à envoyer la commande.
 
Je n'utilise pas WSL. J'ai cygwin installé sur le PC B avec les paquets openssh et x11
 
Et je ne parviens donc qu'à exécuter en arrière plan (sans l'interface graphique) le programme avec la commande suivante :

Code :
  1. ssh -XC user@ip DISPLAY=:0 notepad.exe


 
ou les instructions

Code :
  1. ssh user@ip
  2. export DISPLAY=:0
  3. notepad.exe


Message édité par jojo_le_haricot le 12-12-2019 à 09:27:46

---------------

n°1099970
jay31790
Posté le 12-12-2019 à 10:48:33  profilanswer
 

Peut-être un blocage au niveau de ta config ssh sur le PC B :??:


---------------
Achats/Ventes
mood
Publicité
Posté le 12-12-2019 à 10:48:33  profilanswer
 

n°1099975
jojo_le_ha​ricot
Posté le 12-12-2019 à 11:05:35  profilanswer
 

Probablement mais où ?  :D


---------------

n°1099984
XaTriX
Posté le 12-12-2019 à 11:27:38  profilanswer
 

déjà en local sur un bash cygwin tu peux lancer une appli ?


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
n°1099985
jay31790
Posté le 12-12-2019 à 11:31:06  profilanswer
 

Sous linux, cela doit être sous /etc/ssh/sshd_config (pour les connexions serveur) et /etc/ssh/ssh_config (pour les connexions clients)


---------------
Achats/Ventes
n°1099988
jojo_le_ha​ricot
Posté le 12-12-2019 à 11:38:36  profilanswer
 

XaTriX a écrit :

déjà en local sur un bash cygwin tu peux lancer une appli ?


 
Yes sans problème, je parviens aussi à lancer des commandes a distance mais pour une appli graphique la fenêtre ne s'affiche pas, on retrouve juste le process qui se lance dans le gestionnaire des taches.


---------------

n°1099993
jojo_le_ha​ricot
Posté le 12-12-2019 à 11:45:47  profilanswer
 

jay31790 a écrit :

Sous linux, cela doit être sous /etc/ssh/sshd_config (pour les connexions serveur) et /etc/ssh/ssh_config (pour les connexions clients)


 
Voici le contenu de mon C:\cygwin64\etc\ssh\sshd_config
 

Code :
  1. # $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $
  2. # This is the sshd server system-wide configuration file.  See
  3. # sshd_config(5) for more information.
  4. # This sshd was compiled with PATH=/bin:/usr/sbin:/sbin:/usr/bin
  5. # The strategy used for options in the default sshd_config shipped with
  6. # OpenSSH is to specify options with their default value where
  7. # possible, but leave them commented.  Uncommented options override the
  8. # default value.
  9. #Port 22
  10. #AddressFamily any
  11. #ListenAddress 0.0.0.0
  12. #ListenAddress ::
  13. #HostKey /etc/ssh_host_rsa_key
  14. #HostKey /etc/ssh_host_ecdsa_key
  15. #HostKey /etc/ssh_host_ed25519_key
  16. # Ciphers and keying
  17. #RekeyLimit default none
  18. # Logging
  19. #SyslogFacility AUTH
  20. #LogLevel INFO
  21. # Authentication:
  22. #LoginGraceTime 2m
  23. PermitRootLogin yes
  24. #StrictModes yes
  25. #MaxAuthTries 6
  26. #MaxSessions 10
  27. #PubkeyAuthentication yes
  28. # The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
  29. # but this is overridden so installations will only check .ssh/authorized_keys
  30. AuthorizedKeysFile .ssh/authorized_keys
  31. #AuthorizedPrincipalsFile none
  32. #AuthorizedKeysCommand none
  33. #AuthorizedKeysCommandUser nobody
  34. # For this to work you will also need host keys in /etc/ssh_known_hosts
  35. #HostbasedAuthentication no
  36. # Change to yes if you don't trust ~/.ssh/known_hosts for
  37. # HostbasedAuthentication
  38. #IgnoreUserKnownHosts no
  39. # Don't read the user's ~/.rhosts and ~/.shosts files
  40. #IgnoreRhosts yes
  41. # To disable tunneled clear text passwords, change to no here!
  42. #PasswordAuthentication yes
  43. #PermitEmptyPasswords no
  44. # Change to no to disable s/key passwords
  45. #ChallengeResponseAuthentication yes
  46. # Kerberos options
  47. #KerberosAuthentication no
  48. #KerberosOrLocalPasswd yes
  49. #KerberosTicketCleanup yes
  50. #KerberosGetAFSToken no
  51. # GSSAPI options
  52. #GSSAPIAuthentication no
  53. #GSSAPICleanupCredentials yes
  54. # Set this to 'yes' to enable PAM authentication, account processing,
  55. # and session processing. If this is enabled, PAM authentication will
  56. # be allowed through the ChallengeResponseAuthentication and
  57. # PasswordAuthentication.  Depending on your PAM configuration,
  58. # PAM authentication via ChallengeResponseAuthentication may bypass
  59. # the setting of "PermitRootLogin without-password".
  60. # If you just want the PAM account and session checks to run without
  61. # PAM authentication, then enable this but set PasswordAuthentication
  62. # and ChallengeResponseAuthentication to 'no'.
  63. #UsePAM no
  64. #AllowAgentForwarding yes
  65. #AllowTcpForwarding yes
  66. #GatewayPorts no
  67. X11Forwarding yes
  68. #X11DisplayOffset 10
  69. #X11UseLocalhost yes
  70. #PermitTTY yes
  71. #PrintMotd yes
  72. #PrintLastLog yes
  73. #TCPKeepAlive yes
  74. #PermitUserEnvironment no
  75. #Compression delayed
  76. #ClientAliveInterval 0
  77. #ClientAliveCountMax 3
  78. #UseDNS no
  79. #PidFile /var/run/sshd.pid
  80. #MaxStartups 10:30:100
  81. #PermitTunnel no
  82. #ChrootDirectory none
  83. #VersionAddendum none
  84. # no default banner path
  85. #Banner none
  86. # override default of no subsystems
  87. Subsystem sftp /usr/sbin/sftp-server
  88. # Example of overriding settings on a per-user basis
  89. #Match User anoncvs
  90. # X11Forwarding no
  91. # AllowTcpForwarding no
  92. # PermitTTY no
  93. # ForceCommand cvs server


 
Et mon C:\cygwin64\etc\ssh\ssh_config
 

Code :
  1. # $OpenBSD: ssh_config,v 1.34 2019/02/04 02:39:42 dtucker Exp $
  2. # This is the ssh client system-wide configuration file.  See
  3. # ssh_config(5) for more information.  This file provides defaults for
  4. # users, and the values can be changed in per-user configuration files
  5. # or on the command line.
  6. # Configuration data is parsed as follows:
  7. #  1. command line options
  8. #  2. user-specific file
  9. #  3. system-wide file
  10. # Any configuration value is only changed the first time it is set.
  11. # Thus, host-specific definitions should be at the beginning of the
  12. # configuration file, and defaults at the end.
  13. # Site-wide defaults for some commonly used options.  For a comprehensive
  14. # list of available options, their meanings and defaults, please see the
  15. # ssh_config(5) man page.
  16. # Host *
  17. #   ForwardAgent no
  18.    ForwardX11 yes
  19. #   PasswordAuthentication yes
  20. #   HostbasedAuthentication no
  21. #   GSSAPIAuthentication no
  22. #   GSSAPIDelegateCredentials no
  23. #   BatchMode no
  24. #   CheckHostIP yes
  25. #   AddressFamily any
  26. #   ConnectTimeout 0
  27. #   StrictHostKeyChecking ask
  28. #   IdentityFile ~/.ssh/id_rsa
  29. #   IdentityFile ~/.ssh/id_dsa
  30. #   IdentityFile ~/.ssh/id_ecdsa
  31. #   IdentityFile ~/.ssh/id_ed25519
  32. #   Port 22
  33. #   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
  34. #   MACs hmac-md5,hmac-sha1,umac-64@openssh.com
  35. #   EscapeChar ~
  36. #   Tunnel no
  37. #   TunnelDevice any:any
  38. #   PermitLocalCommand no
  39. #   VisualHostKey no
  40. #   ProxyCommand ssh -q -W %h:%p gateway.example.com
  41. #   RekeyLimit 1G 1h


---------------

n°1100000
jay31790
Posté le 12-12-2019 à 12:20:24  profilanswer
 

Alors, sans rien touché à mes paramètres ssh, ça fonctionne chez moi entre 2 machines RedHat 7 (un serveur et une workstation)
 
côté workstation (avec l'affichage X donc), j'ai créé le script /tmp/launch.sh suivant :

Code :
  1. #!/bin/bash
  2. export DISPLAY=:0
  3. /usr/bin/firefox


 
côté serveur :

Code :
  1. ssh  user@IP /tmp/launch.sh


 
Et mon firefox s'est affiché sur la workstation
Maintenant, tu as du Windows dans la boucle donc tu devrais changer le script shell en un bat mais là, c'est hors de mes compétences^^

Message cité 1 fois
Message édité par jay31790 le 12-12-2019 à 12:21:00

---------------
Achats/Ventes
n°1100004
jojo_le_ha​ricot
Posté le 12-12-2019 à 12:50:30  profilanswer
 

jay31790 a écrit :

Alors, sans rien touché à mes paramètres ssh, ça fonctionne chez moi entre 2 machines RedHat 7 (un serveur et une workstation)

 

côté workstation (avec l'affichage X donc), j'ai créé le script /tmp/launch.sh suivant :

Code :
  1. #!/bin/bash
  2. export DISPLAY=:0
  3. /usr/bin/firefox
 

côté serveur :

Code :
  1. ssh  user@IP /tmp/launch.sh
 

Et mon firefox s'est affiché sur la workstation
Maintenant, tu as du Windows dans la boucle donc tu devrais changer le script shell en un bat mais là, c'est hors de mes compétences^^

 

Je viens de tester exactement ce que tu m'a décrit et j'ai le même comportement qu'auparavant, le programme ne se lance qu'en arrière plan sans l'affichage de la fenêtre.

 

Testé avec un script shell et un batch qui fonctionnent parfaitement quand je suis en local sur le PC distant.

 


Donc je soupçonne fortement Windows de me faire chier  :sweat:


Message édité par jojo_le_haricot le 12-12-2019 à 12:53:09

---------------

n°1100006
jay31790
Posté le 12-12-2019 à 12:57:29  profilanswer
 

soit Windows soit la couche de cygwin...


---------------
Achats/Ventes
n°1100025
XaTriX
Posté le 12-12-2019 à 15:12:08  profilanswer
 

Essaie

export DISPLAY=:0.0


---------------
"Xat le punk à chien facho raciste. C'est complexe comme personnage." caudacien 05/10/2020
n°1100026
jojo_le_ha​ricot
Posté le 12-12-2019 à 15:15:27  profilanswer
 

XaTriX a écrit :

Essaie

export DISPLAY=:0.0



 
c'est fait aussi, ça ne change rien...  :sweat:


---------------

n°1100032
jojo_le_ha​ricot
Posté le 12-12-2019 à 15:31:49  profilanswer
 

J'ai trouvé cette info en fouillant, ça m'aide pas  :sweat:  
 

Citation :


 
ssh -X entre deux linux :
Le premier (où on a fait le ssh -X) devient un serveur X :  Le serveur sshd (de l'autre côté) crée un service local et un "Display" (tu trouvera en principe DISPLAY = localhost:10.0)
Lorsqu'on lance une application Xwindow elle envoi des message d'affichage sur DISPLAY (dans notre cas ces messages sont interceptés par sshd et transmis par le réseau à ssh qui les délivre au serveur X du premier linux).
 
ssh - X de linux vers Windows : cela marche jusqu'au lancement d'une application graphique : Ici chrome : sous Windows chrome utilise l'API Windows (pas de communication avec le DISPLAY et donc avec sshd etc ...)...


 


---------------

n°1100036
jojo_le_ha​ricot
Posté le 12-12-2019 à 16:00:19  profilanswer
 

Putain depuis le début je fais mes tests avec notepad.exe...  
 
Je teste maintenant avec calc.exe ou un message pop-up ça marche ! [:dr_doak]
 
Je teste avec firefox et pareil que le notepad (s'exécute uniquement en arrière plan) [:joemoomoot]


---------------

n°1100037
jay31790
Posté le 12-12-2019 à 16:00:46  profilanswer
 

Je ne sais pas si tu trouveras facilement des infos sur le Net car en général, le déport de display via ssh permet de lancer une appli d'une machine distante tout en ayant l'affichage sur ta machine locale.
 
c'est bien la première fois que je vois quelqu'un vouloir lancer une appli sur une machine distante avec affichage sur la machine distante.
 
La dernière que j'ai fait un truc du genre, c'était pour faire râler des collègues (et encore, on affichait sur sa machine une appli de la machine locale)


---------------
Achats/Ventes
n°1100041
jojo_le_ha​ricot
Posté le 12-12-2019 à 17:10:07  profilanswer
 

Bon j'ai finalement réussi...
En utilisant en complément l'outil psexec sur le poste distant.
 
Depuis le client j'envoie ma commande ssh qui appelle un batch :  

Code :
  1. ssh user@adresseip cmd /c c:/chemindaccesdubat/notepad.bat


 
 
Et sur le poste distant : dans mon batch j'utilise psexec qui envoie la commande au le PC sur lequel il est...  :pt1cable: :

Code :
  1. cd C:\chemindaccessdepsexec
  2. psexec \\NOM_DU_PC_WIN10 -u user -p mdp -i 1 notepad.exe
  3. exit


 
Idem avec firefox par exemple :

Code :
  1. cd C:\chemindaccessdepsexec
  2. psexec \\NOM_DU_PC_WIN10 -u user -p mdp -i 1 "C:\Program Files\Mozilla Firefox\firefox.exe"
  3. exit


Message édité par jojo_le_haricot le 12-12-2019 à 17:12:16

---------------

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Réseaux grand public / SoHo
  Réseaux

  SSH : Lancement d'une appli graphique sur PC distant

 

Sujets relatifs
Cherche Dongle Bluetooth FIABLE pour PC Win 10 pour écouter sonPb 2 PC en reseau domestique qui ne se voient pas
Accéder à la page web locale de mon PC depuis mon smartphoneFibre: vitesse différente sur deux Pc
Je n’arrive pas à partager des dossiers entre 2 PC sous Windows 10Problème débit sur PC avec la fibre
UN PC non vu par UN autre PC sur le réseauPerte de connexion WIFI PC Portable
WiFiDirect. Commebt empecher la TV de demander le mot de passe du PC ?Connexion câble fonctionne sur laptop mais pas sur PC fixe
Plus de sujets relatifs à : SSH : Lancement d'une appli graphique sur PC distant


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR