Précédent   Forum des professionnels en informatique > Systèmes > Linux > Réseau
Réseau Vos questions autour des réseaux et télécoms sous Linux
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/11/2011, 21h40   #1
Membre confirmé
 
Inscription : juillet 2005
Messages : 402
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 402
Points : 269
Points : 269
Par défaut [SSH] X forwarding - Bureau à distance

Bonjour.

Ma question est simple : est-il possible, grâce au X forwarding (via SSH), de faire du "Bureau à distance" style TSE windows ou VNC.

Je m'explique : chez moi, j'ai une machine virtuelle Ubuntu qui me sert (entre autre) de serveur SSH.
J'aimerais faire du "Bureau à distance" sur le serveur en question. Je me suis dit que le X forwarding était fait pour moi, et j'arrive effectivement à lancer des applis (VLC, navigateur de fichier, etc.).
Mais ce que j'aimerais, c'est afficher mon bureau (qui est sous Gnome). Or en cherchant sur le net, je n'ai trouvé que la solution VNC.
Ca fonctionne (via mon tunnel SSH), c'est installé par défaut sous Ubuntu, c'est très bien. Mais ça ajoute une "couche" logicielle là où je me dit que le X forwarding pourraît faire l'affaire.

Quelqu'un pourraît-il m'éclairer mes lanternes sur la question ?

Merci !

<précisions>
Pour ceux que ça intéresse, j'ai découvert récemment que VirtualBox, dont je me sert pour ma VM Ubuntu, supporte le protocole RDP et permet de faire du Terminal serveur quelque soit l'OS "invité". Je peux donc faire du TSE depuis ma machine Windows du boulot vers mon serveur Ubuntu. Pratique.
</precisions>
marchand_de_sable est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2011, 18h32   #2
Membre confirmé
 
Avatar de Mandraxx
 
Homme
Architecte de système d'information
Inscription : mai 2011
Messages : 133
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France, Gers (Midi Pyrénées)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Conseil

Informations forums :
Inscription : mai 2011
Messages : 133
Points : 264
Points : 264
Bonjour,

Je ne suis pas un expert de GNOME mais ça marche avec XFCE alors peut-être que .... ?

Je lance un serveur X (XMing) en mode One Window et Start no client : donc j'obtiens le bon vieux treillis grisâtre
Puis je lance mon ssh -X vers le serveur et je fais un Mon beau bureau XFCE se dessine alors dans XMing et je peux lancer mes applis habituelles.

A tester donc avec GNOME .

@+
__________________
Le choix motivé par le seul argument de modernité est intrinsèquement dépourvu de créativité.
Mandraxx est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/11/2011, 10h44   #3
Membre confirmé
 
Inscription : juillet 2005
Messages : 402
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 402
Points : 269
Points : 269
Bonjour Mandraxx.
Désolé pour le retour un peu tardif.

En tout cas, ta solution fonctionne !
De linux à Linux, pas de problème apparent.
Avec Xming, j'ai un peu plus de mal : j'ai réussi à afficher le bureau (une seule fois), mais pas moyen d'ouvrir un simple fichier texte... On dirait qu'il se charge, mais gedit (éditeur de texte sous Gnome) ne s'affiche pas.
Je n'ai pas pu fouiller plus loin vu que je ne trouve plus la configuration adéquate avec Xming... Et depuis, j'ai un petit message comme quoi le fichier .Xauthority n'est plus "writable".
Bref, j'ai encore 2~3 petits réglages à paufiner, mais ça ressemble bien à ce que je cherche. Merci !

Maintenant, quelques points pour approffondir :
Je n'ai pas de .xsession dans mon home. En revanche, ça fonctionne avec
Mais dans de la doc sur X11, ils disent que ce script ne devrait pas être lancé à la main, mais appeler par la commande startx et/ou par un display manager, tel gdm (celui de Gnome dans mon cas).
Mais startx me renvoie des erreurs qu'il faudra que j'étudie une fois que .Xauthority sera dévérouillé.
En me documentant sur gdm, j'apprends qu'il y a un autre script Xsession dans /etc/gdm/. La doc indique simplement qu'il se lance entre les scripts Presession et Postsession. Ca c'est de l'info...

Bref, je nage un peu entre les display manager, window manager, session manager, etc., donc difficile de comprendre toutes les infos que je trouve. Toute explication (de préférence pas trop technique) sera la bienvenue.

En tout cas, tu m'as mis sur la bonne voie. Je vais continuer de fouiller.
Encore merci.
marchand_de_sable est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 09h39   #4
Membre confirmé
 
Avatar de Mandraxx
 
Homme
Architecte de système d'information
Inscription : mai 2011
Messages : 133
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 33
Localisation : France, Gers (Midi Pyrénées)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Conseil

Informations forums :
Inscription : mai 2011
Messages : 133
Points : 264
Points : 264
Bonjour,

Content d'avoir pu aider un peu

Le fait que tu ne disposes pas de .xsession dans ton $HOME signifie que tu utilises un paramétrage global au système (/etc/X11/Xsession) au lieu d'avoir une conf personnalisée sur ton profil utilisateur (c'est vrai que j'avais pas pensé à ce cas de figure dans ma précédente réponse ).

En ce qui concerne la doc, ça ne m'étonne pas trop car les distros actuelles essayent de simplifier au maximum les environnements en posant une couche d'abstraction qui évite de s'inquiéter de l'architecture X.

Je ne me souviens plus très bien du vocabulaire mais globalement, l'architecture X-Window propose un modèle client/serveur où les applications (comme gedit) établissent une connexion vers un serveur X pour lui envoyer des instruction de dessin.

La commande startx effectue les opérations suivantes :
  1. Démarrage d'un serveur X local
  2. Définition d'une variable d'environnement DISPLAY=:0.0 (équivalente à DISPLAY=127.0.0.1:0.0)
  3. fork/exec sur le $HOME/.xsession (à défaut /etc/X11/Xsession)
  4. wait et arrêt du serveur X quand Xsession rend la main
Du coup, si tu lances startx depuis ssh : tu as un gros problème car tu essayes de démarrer un serveur X...

Comme le ssh -X définit la variable d'environnement DISPLAY et que le serveur X est déporté, le startx n'est plus utile et le lancement du script de session devrait suffire.

Concernant gdm (pendant GNOME de xdm), c'est un programme un peu particulier qui sert juste à ouvrir une session graphique.
En fait, c'est fonctionnellement un mélange de startx et de getty qui se lance au démarrage du système et dont le Xsession lance un seul et unique programme demandant à l'utilisateur de s'authentifier (équivalent graphique de login) puis qui fait un fork/exec sur le $HOME/.xsession (à défaut /etc/X11/Xsession) afin de lancer l'environnement de bureau sur la console locale une fois l'utilisateur authentifié (généralement via PAM).

Après pour comprendre pourquoi ton gedit ne se lance pas, tu peux essayer d'ouvrir un xterm (ou équivalent) et de lancer la commande gedit : tu auras peut-être plus d'infos que via l'interface graphique qui masque certains messages d'erreur.

Bon courage.
@+
__________________
Le choix motivé par le seul argument de modernité est intrinsèquement dépourvu de créativité.
Mandraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2011, 22h11   #5
Membre confirmé
 
Inscription : juillet 2005
Messages : 402
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 402
Points : 269
Points : 269
Bonjour Mandraxx.

Désolé de ne pas avoir réagit plus tôt.
Merci pour tes explications. Je n'en attendais pas temps, et je n'ai pas vraiment tout compris... Mais je retiens une chose, a priori, le /etc/X11/.Xsession est le bon script pour moi.

Cela dit, j'ai vu quelque part qu'on pouvait aussi exécuter gnome-session. A tester...sachant que je n'ai pas encore eu le temps d’approfondir ni tes explications, ni mes tests précédents.

J'espère pouvoir faire un petit compte-rendu prochainement.

A+
marchand_de_sable est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2011, 10h04   #6
Membre confirmé
 
Inscription : juillet 2005
Messages : 402
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 402
Points : 269
Points : 269
Bonjour.

Voilà un petit retour d'XP pour ceux que ça pourraît intéresser.

Pour se connecter en mode graphique à une machine Linux distante, plusieurs solutions :
  • XMDCP (X Display Manager Control Protocol)
Protocole permettant à une machine d'utiliser le X d'une autre machine par l'intermédiaire d'un réseau.
Il est supporté notamment par GDM (Gnome), KDM (KDE) et XDM (?).
Moyennant quelques petites configurations sur le serveur (pour GDM, la conf se fait dans /etc/gdm/custom.conf , voir la manpage gdm), pour le lancer, c'est très simple. Depuis la machine locale :
Code :
X -query ip_machine_distante :1
Remarque : on choisit une sortie graphique (dans mon exemple :1). Evidemment, ça ne peut pas être la sortie que vous utilisez déjà pour la session sur la machine locale (:0 par défaut). On peut ensuite switcher d'une session X à l'autre en faisant Ctrl+Alt+F7|F8|F9|etc (sous Gnome, pour les autres, je ne sais pas).
  • Xnest
C'est un serveur X window qui affiche sa sortie dans une fenêtre comme si c'était une application graphique quelconque. Ca s'appuie sur XDMCP.
L'avantage est de ne pas avoir à basculer d'un affichage à l'autre : ça s'utilise donc vraiment comme VNC ou Terminal Server. Il en existe d'autres, notamment Xephir.
La commande de base pour le lancer :
Code :
Xnest :1 -ac -once -query ip_machine_distante
D'après ce que j'ai lu :
-ac permet d'afficher les applications graphiques qui sont lancées sur la machine distante via la fenêtre Xnest.
-once est censée indiqué que la session doit être close lorsqu'on ferme Xnest.
-geometry (que je n'utilise pas) permet d'indiquer la résolution de la fenêtre Xnest.
Mais ces options ne sont pas systématiquement citées les différents tutos.

Pour en revenir à ma question d'origine : "comment faire du bureau à distance à l'aide du X forwarding via SSH ?"
  • Le script Xsession
La réponse fournie par Mandraxx fonctionne parfaitement. Pour ma part, une fois la connection SSH initiée, je dois lancer le script
  • XDMCP / Xnest
On ne peut pas utiliser le protocle XDMCP directement car il s'appuie sur le protocole UDP non "tunnelable" par SSH.
Xnest permet de règler ce problème, vu que la sortie X est en fait une fenêtre comme une autre.
Code :
ssh -X ip_machine_distante Xnest :1 -ac -once -query localhost
Après de nombreux essais, je dois avouer que ces solutions fonctionnent très bien dans un réseau local. Mais quand je lance une session de ma machine perso depuis le boulot, les perfs sont dramatiquement inconfortables. Est-ce un problème de paramétrage, ou le débit montant de ma connexion est-il trop faible ?
Je ne sais pas, mais pour info, une connexion VNC est bien plus performante...
Moi qui avait lancé ce topic justement en me disant qu'enlever une couche applicative me ferait surement gagner en perf, c'est raté.

J'espère que ce petit récapitulatif (probablement pas exhaustif) aidera.
A+
marchand_de_sable est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h50.


 
 
 
 
Partenaires

Hébergement Web