OVH Cloud OVH Cloud

X11, affichage déporté... autres question de béotien

60 réponses
Avatar
Jacques Perrocheau
Bonjour,

Enhardi par mes nouvelles connaissances en affichage déporté
d'application Xwindow, je me suis dis que je pouvais aussi faire des
tests et me faire la main en X11 déporté entre deux Mac OS 10.3.7 sur
lesquels X11 a été installé. Eh! bien ça ne marche pas...

Après avoir dans xterm tapé la commande magique:

ssh -X toto@LaMachine

puis xlogo ou xclock, j'ai droit à un:

Error: Can't open display:

Ai-je loupé une marche ou est-ce "normal" ? Chacun a bien vu que mes
connaissances en Xwindow étaient "minimales".

Je précise que le X11 de la machine sur laquelle je suis fonctionne
toujours normalement en local et même en distant vers la précédente
machine Linux où je faisais "mes essais".

Merci pour vos avis toujours éclairés ;).

--
Jacques PERROCHEAU
Synthèse et Electrosynthèse Organiques, C.N.R.S. UMR 6510
Université de Rennes I, Campus de Beaulieu, F-35042 RENNES Cedex
Tel: +33 2 23 23 63 74, Fax: +33 2 23 23 63 74

10 réponses

1 2 3 4 5
Avatar
Patrick Stadelmann
In article , FiLH wrote:

Saïd writes:

Patrick Stadelmann :

Il faut autoriser LaMachine à se connecter en X11 sur ta machine :

xhost +LaMachine




IL NE FAUT JAMAIS TAPPER CETTE COMMANDE !

Ça fait bien 15 ans qu'on sait qu'elle est dangereuse.

Pfff...

Ça autorise n'importe qui à se connecter sur le serveur X et donc en
particulier à lire le clavier à l'insu de l'utilisateur.


N'importe qui ??? Uniquement depuis LaMachine, non ? Et comme mon client
X11 tourne sur LaMachine, ssh ou pas je suis bien obligé de la
considérer sûre.

Patrick
--
Patrick Stadelmann



Avatar
Jacques Perrocheau
In article ,
Patrick Stadelmann wrote:

Ai-je loupé une marche ou est-ce "normal" ? Chacun a bien vu que mes
connaissances en Xwindow étaient "minimales".


Il faut autoriser LaMachine à se connecter en X11 sur ta machine :

xhost +LaMachine


En plus explicite pour un usage par un béotien cela donne quoi... ? ;-)

Bon, j'ai lu le man, il n'est pas trop obscur, mais cela ne me dit pas
où il faut le taper, en fait dans xterm cela semble être accepté. On y
va:

mac-amoi:~ moi$ xhost mac-LaMachine
mac-LaMachine being added to access control list
mac-amoi:~ moi$ ssh -X
's password:
Last login: Tue Jan 11 14:32:52 2005
Welcome to Darwin!
mac-LaMachine:~ toto$ xlogo
Error: Can't open display:
mac-LaMachine:~ toto$

;-(

Bon, je n'ai pas mis le + devant le nom, j'ai cru comprendre qu'il était
facultatif. Je recommence:

mac-amoi:~ moi$ xhost -
access control enabled, only authorized clients can connect

Je fais cela pour voir si cela répond, cela dit j'adore ce genre de
logique négative où il faut répondre moins pour activer une fonction...
;). Confusion assurée entre la fonction et le résultat de la fonction!

mac-amoi:~ moi$ xhost +mac-LaMachine
mac-LaMachine being added to access control list
mac-amoi:~ moi$ ssh -X
's password:
Last login: Tue Jan 11 16:57:33 2005 from 129.20.73.25
Welcome to Darwin!
mac-LaMachine:~ toto$ xlogo
Error: Can't open display:
mac-LaMachine:~ toto$

Si cela vous inspire...


La commande xhost sans argument permet de savoir dans quel état est le
contrôle d'accès. Quand je fais:

mac-amoi:~ moi$ xhost

j'ai bien
access control enabled, only authorized clients can connect
INET:mac-LaMachine.xxx.univ-rennes1.fr

J'ai aussi essayé avec

xhost +
access control disabled, clients can connect from any host

Avec le même résultat:
Error: Can't open display:



Il faut aussi aussi que le firewall laisse passer la connexion.


Euh! ça j'y avais pensé, je peux faire du ssh "normal". A priori je n'ai
pas besoin d'avoir un autre port que le port 22 d'ouvert, non ?

Quand je fais un "port scan" vers la machine Linux, à part le 22 il n'y
a d'ouvert que le port 111 (RPC).

--
Jacques PERROCHEAU
Synthèse et Electrosynthèse Organiques, C.N.R.S. UMR 6510
Université de Rennes I, Campus de Beaulieu, F-35042 RENNES Cedex
Tel: +33 2 23 23 63 74, Fax: +33 2 23 23 63 74


Avatar
Patrick Stadelmann
In article <cs0uso$koi$,
Jacques Perrocheau wrote:

In article ,
Patrick Stadelmann wrote:

Ai-je loupé une marche ou est-ce "normal" ? Chacun a bien vu que mes
connaissances en Xwindow étaient "minimales".


Il faut autoriser LaMachine à se connecter en X11 sur ta machine :

xhost +LaMachine


En plus explicite pour un usage par un béotien cela donne quoi... ? ;-)


Bon il semblerait qu'il vaille mieux éviter cette commande et passer par
ssh (voir les autres réponses). Donc il faut faire, sur la machine
distante :

setenv DISPLAY localhost:10

(à "traduire" si nécessaire en fonction du shell utilisé).

Patrick
--
Patrick Stadelmann



Avatar
FiLH
Patrick Stadelmann writes:

In article , FiLH wrote:

Saïd writes:

Patrick Stadelmann :

Il faut autoriser LaMachine à se connecter en X11 sur ta machine :

xhost +LaMachine




IL NE FAUT JAMAIS TAPPER CETTE COMMANDE !

Ça fait bien 15 ans qu'on sait qu'elle est dangereuse.

Pfff...

Ça autorise n'importe qui à se connecter sur le serveur X et donc en
particulier à lire le clavier à l'insu de l'utilisateur.


N'importe qui ???


Oui.

Uniquement depuis LaMachine, non ?


Oui.

Et comme mon client
X11 tourne sur LaMachine, ssh ou pas je suis bien obligé de la
considérer sûre.


Si je peux me permettre, on commence par faire des xhosts + dans des
environnements plus ou moins maîtrisés, puis on finit par en faire
n'importe où.

La sécurité est avant tout affaire de bonnes habitudes. Et ne pas
avoir de mauvaises habitudes, il suffit de ne jamais commencer.

En résumé : xhost + c'est MAL

FiLH



--
FiLH photography. A taste of freedom in a conventional world.
Web: http://www.filh.org e-mail
FAQ fr.rec.photo : http://frp.parisv.com/
Sitafoto la photo a Bordeaux : http://sitafoto.free.fr/




Avatar
FiLH
Patrick Stadelmann writes:

In article ,
Saïd wrote:

Sur la machine distante, que donne echo $DISPLAY?


Il pointe sur l'autre machine (il y est réglé par le script de login).


La variable DISPLAY ne doit pas être positionnée par des scripts de
login.

Le login concerne la connexion, pas l'affichage.

Bon... si vous y tenez, avant de positionner DISPLAY, testez qu'elle
ne l'est pas déjà, ça limitera les dégats.

FiLH


--
FiLH photography. A taste of freedom in a conventional world.
Web: http://www.filh.org e-mail
FAQ fr.rec.photo : http://frp.parisv.com/
Sitafoto la photo a Bordeaux : http://sitafoto.free.fr/


Avatar
YBM
Bon il semblerait qu'il vaille mieux éviter cette commande et passer par
ssh (voir les autres réponses). Donc il faut faire, sur la machine
distante :

setenv DISPLAY localhost:10

(à "traduire" si nécessaire en fonction du shell utilisé).



non, non et triple non ! Il faut laisser ssh et sshd négocier et
positionner cette variable, le "10" ne tombe pas du ciel.

cf la page de manuel de ssh :

X11 and TCP forwarding
If the ForwardX11 variable is set to "yes"
(or see the description of the -X and -x options
described later) and the user is using X11 (the
DISPLAY environment variable is set), the connection
to the X11 dis- play is automatically forwarded to
the remote side in such a way that any X11 programs
started from the shell (or command) will go through
the encrypted channel, and the connection to the
real X server will be made from the local machine.
The user should not manually set DISPLAY. Forwarding
of X11 connections can be configured on the com-
mand line or in configuration files.

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 for-
warding the connections over the encrypted channel.

ce localhost:10 (ou 11, 12, etc) fait passer le traffic X11
à travers un tunel crypté entre le client ssh et le serveur
sshd. Le client ssh utilise kerberos (xauth) pour obtenir
les droits d'accès au serveur X local et lui transmet le
traffic X11 qu'il reçoit du serveur sshd à travers le
tunnel ssh.

Avec xhost +mamachine (qui d'ailleurs ne marche pas avec les
configurations sécurisées du serveur X) il y a deux problèmes :

- on autorise *tout* utilisateur de la machine à accéder au
serveur X (affichage *et* clavier !)
- le traffic X11 se fait en clair à travers le réseau, on peut
capturer les évènements du clavier, etc.

ça doit être activé dans sshd_config (X11Forwarding yes) et
peut être rendu automatique du côté client (plus besoin de '-X') dans
ssh_config (ForwardX11 yes).

Avatar
Saïd
Patrick Stadelmann :
In article ,
Saïd wrote:

Sur la machine distante, que donne echo $DISPLAY?


Il pointe sur l'autre machine (il y est réglé par le script de login).



Mauvais script. Il faut tester si la variable DISPLAY est definie avant de
la creer.


En passant par ssh le DISPLAY (sur la machine distante) vaut localhost:10.0
(ou 11.0...) ce qui veut dire que les programmes X11 lances sur la machine
distante se connectent a un serveur local (de la machine distante) et pas au




Avatar
Saïd
Patrick Stadelmann :
In article ,
Saïd wrote:

Sur la machine distante, que donne echo $DISPLAY?


Il pointe sur l'autre machine (il y est réglé par le script de login).



Mauvais script. Il faut tester si la variable DISPLAY est definie avant de
la creer.


En passant par ssh le DISPLAY (sur la machine distante) vaut localhost:10.0
(ou 11.0...) ce qui veut dire que les programmes X11 lances sur la machine
distante se connectent a un serveur local (de la machine distante) et pas au
serveur qui gere effectivement l'affichage (celui de la machine locale).


OK, en mettant localhost:10 ça fonctionne. Merci.



Ce n'est pas toujours 10.0, donc mieux vaut que tu modifies ton script de
login. J'ai ca dans mes scripts (sous zsh):

if [ -z "$DISPLAY" ]
then
export DISPLAY=:0.0
fi

--
Saïd.
C programmers never die - they're just cast into void.


Avatar
Saïd
Jacques Perrocheau :
In article ,
Patrick Stadelmann wrote:

Ai-je loupé une marche ou est-ce "normal" ? Chacun a bien vu que mes
connaissances en Xwindow étaient "minimales".


Il faut autoriser LaMachine à se connecter en X11 sur ta machine :

xhost +LaMachine


En plus explicite pour un usage par un béotien cela donne quoi... ? ;-)



D'abord verifier que tes scripts de logins ne bousillent pas la varibale
DISPLAY

echo $DISPLAY doit renvoyer qqch comme localhost:10.0 (sur la machine
distante, le 10 peut etre un 11 ou 12 en tout cas un localhost:0.0 est
completement suspect).

ensuite dans les preferences de X11 de la machine sur laquelle s'affichent
les images (la machine locale) -> Security -> Allow connections from network
clients.

--
Saïd.
C programmers never die - they're just cast into void.



Avatar
Saïd
Saïd :
ensuite dans les preferences de X11 de la machine sur laquelle s'affichent
les images (la machine locale) -> Security -> Allow connections from network
clients.



Ne pas tenir compte de ce paragraphe. Normalement ca ne doit pas jouer.

--
Saïd.
C programmers never die - they're just cast into void.

1 2 3 4 5