Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 30/09/2009, à 23:28

NiRaDo

SSH : Lancer une application "comme pour de vrai" ?

Bonjour. Désolé pour le titre un peu ambigu mais je n'ai pas su quoi mettre d'autre qui puisse décrire au mieux mon interrogation.

J'aimerais savoir si cela est possible.

Soit un ordinateur A utilisé par l'user "victor" qui surf sur un navigateur graphique, saisi son texte sur un logiciel de traitement de texte, etc.

Moi, je me connecte en SSH, et je sais faire en sorte d'avoir les droits d'administration.

Est-il possible d'invoquer une application graphique via SSH, mais en faisant en sorte que l'application graphique s'ouvre non pas dans la session SSH courante, mais dans la session victor courante... c'est à dire faire en sorte que victor "voit" l'application qui se lance devant lui, et peut alors interagir avec.

Je ne sais pas si j'ai été clair. En gros, puis-je lancer une application comme si j'étais à la place de victor, devant son bureau ?

Merci d'avance :d

Hors ligne

#2 Le 01/10/2009, à 00:49

nesthib

Re : SSH : Lancer une application "comme pour de vrai" ?

Tu peux faire ça très facilement. Il suffit d'activer le X forwarding avec l'option -X de ssh. À cette étape tu peux lancer une appli graphique sur ta machine locale. Pour lancer l'affichage sur la machine distante il faut taper (une fois connecté)

DISPLAY=:0

GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#3 Le 01/10/2009, à 09:51

Sciensous

Re : SSH : Lancer une application "comme pour de vrai" ?

Bonjour,
étant aussi intéressé par la démarche, peux-tu donner un exemple avec vlc ?
j'ouvre un terminal
j'y tape ssh -X user@ip

et là ?
DISPLAY=:0 ; vlc ?
ne marche pas car:

VLC media player 0.8.6e Janus
No protocol specified
Error: Unable to initialize gtk, is DISPLAY set properly?

merci


antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )

Hors ligne

#4 Le 01/10/2009, à 14:24

nesthib

Re : SSH : Lancer une application "comme pour de vrai" ?

Sciensous a écrit :

Bonjour,
étant aussi intéressé par la démarche, peux-tu donner un exemple avec vlc ?
j'ouvre un terminal
j'y tape ssh -X user@ip

et là ?
DISPLAY=:0 ; vlc ?
ne marche pas car:

VLC media player 0.8.6e Janus
No protocol specified
Error: Unable to initialize gtk, is DISPLAY set properly?

merci

normalement juste:

ssh -XC user@ip
DISPLAY=:0
vlc

à partir de DISPLAY dans l'invite de commande distante bien sûr.

Sinon vérifie bien ton /etc/ssh/sshd_config si tu as la valeur

X11Forwarding yes

est-ce que ça fonctionne avec d'autres programmes, genre gedit?


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#5 Le 01/10/2009, à 15:50

Sciensous

Re : SSH : Lancer une application "comme pour de vrai" ?

@nesthib: oui j'ai bien X11Forwarding yes et j'ai bien rentré les commandes: testé avec un script maison non graphique-> se lance bien; en remplaçant la ligne par vlc ou xmessage, ça ne marche pas; j'ai le message d'erreur ... gtk
(j'ai même essayé avec export DISPLAY=:0)
(mais j'ai l'impression que l'option  -X correspond à ce "déport")
sad


antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )

Hors ligne

#6 Le 01/10/2009, à 16:13

Coolgeek

Re : SSH : Lancer une application "comme pour de vrai" ?

@nesthib : je pense que tu as mal compris, il ne demande pas a ce qu'une application s'execute sur le PC distant en ayant un affichage sur le PC local, mais executer une application sur le PC distant ET qu'il s'affiche sur le PC distant, dans la session qu'un user a ouvert sur cette même machine.
dans ce cas, pas besoin d'utiliser le X11 Forwarding.

Hors ligne

#7 Le 01/10/2009, à 17:24

Sorlingues

Re : SSH : Lancer une application "comme pour de vrai" ?

Bonjour,

J'espère avoir compris ce que tu veux. Moi en général le problème que je rencontre est que je n'ai pas le droit d'utiliser le display de l'utilisateur distant, même si je suis admin sur cette machine. Il faudrait que cet utilisateur fasse un xhost + mais je n'aime pas cela.

À la place je fais ceci

ssh -X moi@machine distante
sudo -u utilisateur_distant_du_display -i
DISPLAY=:0.0 xclock

Bon chez moi cà marche mais ça ne me sert pas à grand chose de lancer une appli sur un display distant que je ne vois pas ! tongue
(J'espère ne pas avoir compris le problème de travers)

Hors ligne

#8 Le 02/10/2009, à 00:27

nesthib

Re : SSH : Lancer une application "comme pour de vrai" ?

@Sciensous : la session graphique est-elle lancée sur le serveur? Sinon impossible de lancer le display (si l'ordi est juste booté mais pas loggué ça ne marche pas, de même il me semble que seul l'utilisateur dont la session est active peut lancer le display)

@Coolgeek : je lui ai expliqué les 2 possibilités comme ça il a le choix, et avec DISPLAY=:0 c'est bien sur l'ordi distant que se lance et s'affiche le programme. De plus le X11forwarding est nécessaire dans les 2 cas.


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#9 Le 06/10/2009, à 21:56

NiRaDo

Re : SSH : Lancer une application "comme pour de vrai" ?

Coolgeek a écrit :

@nesthib : je pense que tu as mal compris, il ne demande pas a ce qu'une application s'execute sur le PC distant en ayant un affichage sur le PC local, mais executer une application sur le PC distant ET qu'il s'affiche sur le PC distant, dans la session qu'un user a ouvert sur cette même machine.
dans ce cas, pas besoin d'utiliser le X11 Forwarding.

Oui voilà tout à fait.

Je vois que la question reste entière tongue

Mais ce serait super intéressant de pouvoir faire ça

Hors ligne

#10 Le 06/10/2009, à 23:28

nesthib

Re : SSH : Lancer une application "comme pour de vrai" ?

NiRaDo a écrit :

Je vois que la question reste entière tongue

euh... si tu as bien lu je te l'ai expliqué plus haut

1- pour lancer une appli qui est installée sur la machine distante et avoir l'affichage en local

ssh -XC user@ip
ton_appli

2- pour lancer une appli qui est installée sur la machine distante avec affichage sur la machine distante (donc tu ne vois pas cet affichage sur ton ordi local)

ssh -XC user@ip
DISPLAY=:0
ton_appli

voilà, la variable DISPLAY permet de savoir où tu lances l'affichage. Par défaut si tu te loggues en ssh et que tu tapes :

echo $DISPLAY

tu verras que l'affichage n'est pas ":0" (mais souvent ":10.0") comme tu l'as en lançant juste un terminal en local, le fait de mettre à ":0" indique la session graphique de la machine distante (enfin la session locale pour elle en l'occurrence...)

le mieux c'est que tu testes et tu comprendras

NB. si aucune session n'est ouverte sur la machine distante la solution 2 n'est pas possible (à ma connaissance)


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#11 Le 07/10/2009, à 01:03

NiRaDo

Re : SSH : Lancer une application "comme pour de vrai" ?

Merci beaucoup smile. Je vais tester ça dés que possible et je "tiens au courant" le topic.

Dernière modification par NiRaDo (Le 07/10/2009, à 01:03)

Hors ligne

#12 Le 07/10/2009, à 01:47

kyncani

Re : SSH : Lancer une application "comme pour de vrai" ?

Si tu veux lancer une application distante via ssh en utilisant l'affichage distant (c'est très sauvage, notamment pour le xauthority, mais bon) :

ssh machinedistante
sudo cp /home/utilisateurconnecté/.Xauthority ~/
DISPLAY=:0.0   tonapplication

Hors ligne

#13 Le 01/11/2009, à 18:45

NiRaDo

Re : SSH : Lancer une application "comme pour de vrai" ?

Bhof, c'est bien ce que je pensais...

ssh -XC dominique@domi-biglaptop
dominique@domi-biglaptop:~/Bureau$ ls
dominique@domi-biglaptop:~/Bureau$ echo "coucou, c'est une essai" > coucou.txt
dominique@domi-biglaptop:~/Bureau$ DISPLAY=:0
dominique@domi-biglaptop:~/Bureau$ gedit coucou.txt 
No protocol specified

(gedit:5378): Gtk-WARNING **: cannot open display: :0

Hors ligne

#14 Le 01/11/2009, à 18:46

NiRaDo

Re : SSH : Lancer une application "comme pour de vrai" ?

kyncani a écrit :

Si tu veux lancer une application distante via ssh en utilisant l'affichage distant (c'est très sauvage, notamment pour le xauthority, mais bon) :

ssh machinedistante
sudo cp /home/utilisateurconnecté/.Xauthority ~/
DISPLAY=:0.0   tonapplication

Quelle est l'utilité de copier X.authority sur lui même ?

Hors ligne

#15 Le 02/11/2009, à 12:38

kyncani

Re : SSH : Lancer une application "comme pour de vrai" ?

Erreur de ma part, j'ai l'habitude de passer root avec sudo -i plutôt que d'utiliser sudo à chaque fois, c'est donc sudo cp /home/utilisateur/.Xauthority /root/

Par ailleurs, la commande suivante est bien :
prompt#  DISPLAY=:0.0 tonapplication

Et non pas
prompt#  DISPLAY=:0.0
prompt#  tonapplication

Ou sinon, si tu veux décomposer, tu pourrais utiliser
prompt#  export DISPLAY=:0.0
prompt#  tonapplication

Hors ligne

#16 Le 02/11/2009, à 15:42

nesthib

Re : SSH : Lancer une application "comme pour de vrai" ?

kyncani a écrit :

Par ailleurs, la commande suivante est bien :
prompt#  DISPLAY=:0.0 tonapplication

Et non pas
prompt#  DISPLAY=:0.0
prompt#  tonapplication

Ou sinon, si tu veux décomposer, tu pourrais utiliser
prompt#  export DISPLAY=:0.0
prompt#  tonapplication

pourquoi?
tu n'ouvres pas de nouveau shell avec "DISPLAY=:0" tu modifies juste une variable, elle est donc bien prise en compte (pas besoin de "export"). Ça fonctionne très bien comme ça chez moi.

prompt#  DISPLAY=:0.0
prompt#  tonapplication

GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#17 Le 05/11/2009, à 16:32

kyncani

Re : SSH : Lancer une application "comme pour de vrai" ?

nesthib a écrit :

pourquoi?
tu n'ouvres pas de nouveau shell avec "DISPLAY=:0" tu modifies juste une variable, elle est donc bien prise en compte (pas besoin de "export"). Ça fonctionne très bien comme ça chez moi.

prompt#  DISPLAY=:0.0
prompt#  tonapplication

"DISPLAY=:0.0" seule ne sert à rien. Elle positionne juste la variable shell display, or le shell n'utilise pas le display X11.
Les variables shell non exportées ne sont pas transmises à ses processus fils, c'est à dire aux commandes que tu lances depuis le shell.

Si ça marche très bien chez toi, c'est parce que la variable display fait déjà partie de l'environnement du shell. Si tu te connectes en mode graphique et que tu lances un terminal gnome, celui-ci démarre un shell avec la variable display prépositionnée dans l'environnement. Les sous-processus lancés par le shell héritent donc de la même valeur d'environnement.

En revanche,
- une connection ssh classique n'aura pas de display positionné (ça n'a pas toujours de sens).
- une connection ssh ouverte avec -X aura un display positionné sur le tunnel X11 ouvert par ssh.

@NiRaDo: c'est normal que tu ne puisses pas contacter un serveur X11 comme ça, il faut soit importer le xcookie qui va bien (google: xauth list add), soit le faire sauvagement en récupérant tous les xcookies de l'utilisateur connecté depuis /home/lutilisateurconnecté/.Xauthority

Enfin bon, j'écris tout ça de mémoire car je n'ai pas trop le temps de suivre le thread en ce moment.

Hors ligne

#18 Le 17/11/2009, à 14:48

NiRaDo

Re : SSH : Lancer une application "comme pour de vrai" ?

Merci de ta réponse.

Ça à l'air bien trop compliqué tongue Je crois que je vais abandonner :d

Hors ligne

#19 Le 17/11/2009, à 15:23

nesthib

Re : SSH : Lancer une application "comme pour de vrai" ?

NiRaDo a écrit :

Merci de ta réponse.
Ça à l'air bien trop compliqué tongue Je crois que je vais abandonner :d

si tu nous disais ce que tu veux faire exactement? lancer une vidéo sur l'ordi distant?
franchement c'est relativement simple, il ne faut pas baisser les bras wink


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#20 Le 17/11/2009, à 15:36

NiRaDo

Re : SSH : Lancer une application "comme pour de vrai" ?

nesthib a écrit :
NiRaDo a écrit :

Merci de ta réponse.
Ça à l'air bien trop compliqué tongue Je crois que je vais abandonner :d

si tu nous disais ce que tu veux faire exactement? lancer une vidéo sur l'ordi distant?
franchement c'est relativement simple, il ne faut pas baisser les bras wink

Bhein du genre ma mère qui est à 2h de chez moi m'appelle et me dit "J'en ai marre ! je sais pas comment ouvrir ce fichier texte !" (ma mère est très nul en informatique).

Eh bien moi, je voudrais me connecter en ssh et pouf, faire en sorte que sur l'ordi de ma mère, y a gedit qui s'ouvre avec le fichier texte chargé devant elle, comme par magie :d

Hors ligne

#21 Le 17/11/2009, à 15:54

aemaeth2501

Re : SSH : Lancer une application "comme pour de vrai" ?

Je plussoie ce topic : j'ai essayé de faire ca il y a un moment, mais j'avais abandonné. Le fait que moi aussi ma mère est nulle en informatique, que bientôt elle aura un zouli nubuntu d'installé et que cette thread est ouverte me pousse à retenter le truc smile

Hors ligne

#22 Le 17/11/2009, à 16:37

kinouchou

Re : SSH : Lancer une application "comme pour de vrai" ?

bonjour,

je pense qu'il faut chercher de ce côté http://doc.ubuntu-fr.org/vnc

#23 Le 17/11/2009, à 16:53

nesthib

Re : SSH : Lancer une application "comme pour de vrai" ?

kinouchou a écrit :

bonjour,

je pense qu'il faut chercher de ce côté http://doc.ubuntu-fr.org/vnc

pas besoin, c'est sortir la grosse artillerie…

sinon j'ai peut être une idée pour ton problème NiRaDo.
Lorsque tu te connectes sur l'ordi de ta mère tu le fais avec quel utilisateur? Il faut le faire avec celui qui utilise le display donc celui de ta mère. Si tu te connectes avec un autre identifiant ça ne marche pas si je me souviens bien.

ensuite lorsque tu es connecté avec son identifiant, suis ce qui t'a été dit avant (DISPLAY=:0 gedit)

edit : si ça ne fonctionne pas peux-tu poster le contenu du fichier /etc/ssh/sshd_config de l'ordi de ta mère

Dernière modification par nesthib (Le 17/11/2009, à 16:56)


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#24 Le 18/11/2009, à 01:46

EF

Re : SSH : Lancer une application "comme pour de vrai" ?

Bonsoir

Je fais régulièrement ça sur l'ordinateur de mon fils et ça fonctionne parfaitement

]ssh benji@benji-desktop zenity --display=:0.0 --question --title=\"PAPA A DIT\" --text=\"A TABLE\"

Il faut se connecter avec l'identifiant de la cession ouverte sur l'ordinateur distant et que l'application soit installée sur l'ordinateur distant
et il faudra saisir le mot de passe de la cession distante

Hors ligne

#25 Le 18/11/2009, à 17:13

aemaeth2501

Re : SSH : Lancer une application "comme pour de vrai" ?

Bonjour, je reprends un peu la suite.

@EF : J'ai testé sans succès :

ssh aemaeth@XXX.XXX.XXX.XXX -p XXXX zenity --display=:0.0 --question --title=\"TEST\"

Retour de commade :

No protocol specified

(zenity:14162): Gtk-WARNING **: cannot open display: :0.0

@Nesthib : je suis connecté avec l'utilisateur de session ouverte.

Je donne ici ma config ssh :

# Package generated configuration file
# See the sshd(8) manpage for details

# What ports, IPs and protocols we listen for
Port XXXX
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile     %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

UsePAM yes
AllowUsers aemaeth

Hors ligne