[SSH]Obtenir interface Graphique

Fermé
Sphost - 7 avril 2005 à 09:06
 papix - 25 mars 2012 à 19:58
Bonjour à tous,

Voilà, je suis sur une machine cliente de type Red Hat et g un serveur distant lui aussi de type red hat, afin d'éviter d'avoir à faire des aller et retour sans cesse entre le bureau ou se trouve le poste client et la salle de serveur, je souhaite pouvoir accéder à mon serveur à distance.
J'ai donc choisi d'utiliser SSH. Cela fonctionnemement parfaitement, mais maintenante je souhaiterais pouvoir obtenir l'interface graphique de mon serveur sur ma machine cliente (un peu comme le fait un VNC)
Je sais que l'on peut lancer des application graphique à distance en utilisant l'option -X de SSH mais je ne trouve pas le moyen d'obtenir directement la visualisation de mon Bureau serveur.

Merci de votre aide.

9 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
14 avril 2005 à 15:48
Et ça aussi : http://docs.mandragor.org/files/Operating_systems/Linux/Formation_Debian_Gnu_Linux_fr/export-display.html
C'est peut être la solution à tes soucis ;-))
Le serveur graphique possède une fonction d'export display, mais qui n'est pas cryptée comme avec SSH. Il faut d'abord autoriser les connexions en provenance du serveur X, puis demander au serveur X distant de renvoyer le display vers le serveur X de la machine cliente :

% xhost + serveur.exemple.org

% ssh login@serveur.exemple.org

% export DISPLAY=client.exemple.org:0.0
Note: Pour que cela marche, il faut que le serveur X de la machine cliente ne soit pas lançé avec l'option -nolisten tcp, ce qui est le cas par défaut !

Si vous utilisez la commande startx, enlevez cette option du fichier /etc/X11/xinit/xserverrc :
5
Xenor Messages postés 3312 Date d'inscription dimanche 11 août 2002 Statut Contributeur Dernière intervention 22 juin 2015 51
7 avril 2005 à 13:46
Salut,
Faire ssh -C -X utilisateur@machine, et réessayer.
Si ça ne marche pas non plus, essayer de modifier la variable DISPLAY à la main. Une fois connecté en ssh, faire "export DISPLAY="machine:0" (machine est le nom/l'IP de la machine client). Deux autres choses sont alors à faire : le serveur X distant (sur la machine client donc) doit accepter les connections tcp, pour cela il faut desactiver le "nolisten tcp" qu'il y a par défaut dans les configuration de gdm par exemple. Et également accepter la machine serveur, pour cela faire un "xhost + machine" (machine est cette fois la machine serveur) dans un terminal sous X sur le poste client.
Voilà voilà ça fait bcp de choses mais une fois qu'on connait c'est facile...
1
Salut Xenor,
Je viens d'essayer et g la même erreur ... à part que g client 5 au lieu de client 4 (mais bon je pense pas que ça a grande importance)

Bref toujours coincé ... merci de ton aide, si tu as une autre idée tiens moi au courant, je continu de chercher de mon côté.
0
Xenor Messages postés 3312 Date d'inscription dimanche 11 août 2002 Statut Contributeur Dernière intervention 22 juin 2015 51
7 avril 2005 à 21:32
le X11 forwarding, c'est un truc que je fais toujours, partout et dans tous les sens. Donc si ça marche pas c'est que tu as dû oublier quelque chose. Si tu peux me décrire précisément les étapes que tu suis, et les messages d'erreur que tu reçois, je pourrais peut être t'aider...
0
Sphost > Xenor Messages postés 3312 Date d'inscription dimanche 11 août 2002 Statut Contributeur Dernière intervention 22 juin 2015
8 avril 2005 à 11:15
salut,
G suivi à la lettre ce que vous m'avait dit :

X11Forwarding yes
X11DisplayOffset 10
dans sshd_config du serveur

Host *
ForwardAgent? yes
ForwardX11? yes
dans ssh_config du client

xhost +IP_du_client
sur le serveur

ensuite sur le client:
ssh -C -X IP_du_serveur
(je me log en root)
export DISPLAY="IP_du_client:0"
startx -- :1

et là j'obtiens tjs la même erreur que dans le message <6> ...
0
Xenor Messages postés 3312 Date d'inscription dimanche 11 août 2002 Statut Contributeur Dernière intervention 22 juin 2015 51 > Xenor Messages postés 3312 Date d'inscription dimanche 11 août 2002 Statut Contributeur Dernière intervention 22 juin 2015
9 avril 2005 à 01:07
Bien !
....sauf.... que le "xhost + IP_client" sur le serveur, non, c'est l'inverse, il faut autoriser le serveur X de ton client à afficher des trucs qui viennent du serveur.
Sous X, sur ton client, ouvre un terminal, fais "xhost + Ip_serveur" dedans, puis ton "ssh -C -X ip_serveur".
Peux tu commencer par un simple "xterm" (pour le startx on verra plus tard) et voir si il s'affiche ou pas ?
0
Sphost > Xenor Messages postés 3312 Date d'inscription dimanche 11 août 2002 Statut Contributeur Dernière intervention 22 juin 2015
12 avril 2005 à 08:18
Salut,
Le xterm s'affiche bien, g tenté un emacs, idem ça passe.
Mais le startx -- :1 pas moyen que ça passe.
Par contre, le fait que l'interface graphique sur le serveur soit lancé serait-il une cause du non fonctionnement du startx à distance?

Sphost
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
7 avril 2005 à 09:39
Salut,

Tiens jette un oeil là : http://www.pingouin-land.com/howto/Remote-X-Apps.html
;-))
0
slt,
Je viens de lire la doc, mais elle ne traite pas réellement des connections X via SSH mais surtout via telnet et autre.
En fait il faudrait juste que je sache comment faire pour lancer l'équivalent d'un startx de mon serveur depuis mon client avec d'avoir l'interface de mon serveur sur mon client

Merci de ton aide.
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
7 avril 2005 à 10:44
Je cite :
6.3 Ssh

Les enregistrements d'autorisation sont transmis sur le réseau sans codage. Si vous vous souciez de ce que l'on puisse espionner vos connexions, utilisez ssh, le shell sécurisé. Il effectuera des transmissions X sécurisées au moyen de connexions chiffrées.

Pour activer la transmission X par ssh, utilisez l'option de la ligne de commande -X ou écrivez ce qui suit dans votre fichier local de configuration de ssh :

Host remote.host.name
ForwardX11 yes


Le serveur ssh (sshd) du côté distant positionnera automatiquement la variable DISPLAY sur l'extrémité du tunnel X transmis. Le tunnel distant récupère son propre cookie ; le serveur ssh distant le génère pour vous et le place dans ~/.Xauthority là-bas. Ainsi, l'autorisation X avec ssh est complètement automatique.

;-))
0
:-D
Oui tkt ça je l'ai bien lu mais le prob et le suivant : en lançant ça j'obtiens :
Fatal server error:
Server is already active for display 0

Donc voilà tout le problème :-p

@tte
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
7 avril 2005 à 11:34
Extrait du man de ssh :
The DISPLAY value set by ssh will point to the server machine, but with a
display number greater than zero. This is normal, and happens because
ssh creates a ``proxy'' X server on the server machine for forwarding the
connections over the encrypted channel.

Donc une fois loggué, un petit :
startx -- :1
;-))
0
Bonjour

Vous pourriez utiliser vnc et ssh ?

http://dominique.guebey.club.fr/tekno/securite/sshvnc.htm

Si vous essayez, fites savoir si ça marche!

Jules
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
14 avril 2005 à 11:36
Re-

Tiens je viens de redécouvrir cette explication sur la doc d'Alexis de Lattre :
http://people.via.ecp.fr/~alexis/formation-linux/export-display.html
0
Vous pouvez aussi utiliser "Nomachine" très puissant !! Il utilise même ssh pour ses transfères pour plus de sécurité !!
0
Je viens d'essayer, la commande se lance bien mais plante quasiment au démarrage :

(WW) ATI(0): Failed to set up write-combining range (0xfd000000,0x800000)
(WW) ATI(0): Failed to set up write-combining range (0xfd000000,0x800000)
SESSION_MANAGER=local/GTS-TEC-01:/tmp/.ICE-unix/18634
AUDIT: Thu Apr 7 12:23:02 2005: 18630 X: client 4 rejected from local host

NB : cela n'a peut-être pas d'importance mais mes deux postes n'ont pas la même configuration matérielle.

Merci encore de ton aide.
-1