Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[xterm] connection a distance

11 réponses
Avatar
toto
Bonsoir,

J'ai un probl=E8me de connection =E0 distance sur une machine linux dont
je voudrais renvoyer l'=E9cran sur mon mac.
Machine : powerbook alu 15" 1.5 GHz
Syst=E8me : Mac OS X 10.4.7 avec toutes les mises =E0 jour faites

Voici les =E9tapes qui sont faites pour me connecter :
0- Ouverture de X11
1- ssh -Y MachineLinux
2- Sur MonMac je tape : xhost + MachineLinux
3- Sur LaMachineLinux je tape : setenv DISPLAY MonMac:0.0
(remplacer MonMac par le N=B0 IP de la machine)
4- Sur LaMachineLinux je tape : xterm
Au bout d'un certain temps j'ai le message :
/usr/X11R6/bin/xterm.real Xt error: Can't open display: MonMac:0.0

J'ai pens=E9 =E0 un probl=E8me d'autorisation mais je ne vois pas. Si je
vais regard=E9 dans Partage du Pr=E9f=E9rence Syst=E8mes j'ai autoris=E9
les services : Partage de fichiers Mac =E0 distance, Session =E0
Distance, Acc=E8s ftp, Apple Remote Desktop.
Je sais pas si il existe un fichier log dans console qui me dise qu'un
ordinateur essaye d'envoyer des infos sur mon =E9cran et si il existe
quel est son nom. Je ne peux pas consulter les fichiers log de la
machine MachineLinux non plus.


Avez-vous une id=E9e du pourquoi de cet =E9chec et quelques suggestions
pour y rem=E9dier.

Merci d'avance de votre aide et bonne soir=E9e, cordialement,

L'apprenti d=E9butant

10 réponses

1 2
Avatar
Saïd
toto :
Bonsoir,

J'ai un problème de connection à distance sur une machine linux dont
je voudrais renvoyer l'écran sur mon mac.
Machine : powerbook alu 15" 1.5 GHz
Système : Mac OS X 10.4.7 avec toutes les mises à jour faites

Voici les étapes qui sont faites pour me connecter :
0- Ouverture de X11
1- ssh -Y MachineLinux


-Y je ne connais pas.

0- ouverture X11 sur mac
1- export DISPLAY=localhost:0.0 (sur le mac)
2- ssh -X MachineLinux
3 sur le linux: xterm

si ca ne marche pas c'est que le serveur sshd n'est pas configure pour
exporter l'affichage. La on peut passer a ta methode, mais avant il faut que
tu change les preferences de X11 sur le mac:
Cocher "Akkow connections from network clients" (c'est option n'est pas
utile si tu utilise ma methode qui utilise ssh pour creer un tunnel (i.e.
ton X11 sur le mac n'est meme pas au courant que la fenetre est affichee par
une application qui tourne sur une autre machine)).






2- Sur MonMac je tape : xhost + MachineLinux
3- Sur LaMachineLinux je tape : setenv DISPLAY MonMac:0.0
(remplacer MonMac par le N° IP de la machine)
4- Sur LaMachineLinux je tape : xterm
Au bout d'un certain temps j'ai le message :
/usr/X11R6/bin/xterm.real Xt error: Can't open display: MonMac:0.0



Ton X11 doit refuser les connexions distantes.

--
Sind zu sein und es seiend in einem Schiff. Fällt zu sein hat das Wasser.
Wer bleibt er? -- Heidegger

Avatar
bertrand.NOSPAM.lupart
Saïd wrote:

toto :
Bonsoir,

J'ai un problème de connection à distance sur une machine linux dont
je voudrais renvoyer l'écran sur mon mac.
Machine : powerbook alu 15" 1.5 GHz
Système : Mac OS X 10.4.7 avec toutes les mises à jour faites

Voici les étapes qui sont faites pour me connecter :
0- Ouverture de X11
1- ssh -Y MachineLinux


-Y je ne connais pas.


----8<----8<----8<----8<----
-Y Enables trusted X11 forwarding.
---->8---->8---->8---->8----

Je ne connais pas la différence avec -X, mais sur mes Debian récentes,
il n'y a que le -Y qui fonctionne.

0- ouverture X11 sur mac
1- export DISPLAY=localhost:0.0 (sur le mac)
2- ssh -X MachineLinux
3 sur le linux: xterm


1- Lancement de X11.app sur le mac.

2- Avec xterm ou Terminal.app, vérifer que la variable DISPLAY est bien
renseignée (utiliser export/setenv au besoin):

----8<----8<----8<----8<----
mac$ echo $DISPLAY
:0.0
---->8---->8---->8---->8----

3- Depuis la même fenêtre de terminal, se connecter sur le Linux puis
vérifier la valeur de DISPLAY sur celui-ci:

----8<----8<----8<----8<----
mac$ ssh -Y
linux$ echo $DISPLAY
:10.0
---->8---->8---->8---->8----

Si la valeur de $DISPLAY est vide sur le linux, il y a de grande chances
que sshd n'autorise pas le forward de X11.

Mettre:
X11Forwarding yes
dans:
/etc/ssh/sshd_config
ou équivalent et redémarrer sshd.

Il va aussi sûrement te falloir le programme xauth sur le Linux. Pour
les Debian, il est dans le package xbase-clients.

--
Bertrand


Avatar
toto

Saïd wrote:

toto :
Bonsoir,
Bonjour à tous les deux et merci pour votre aide






J'ai un problème de connection à distance sur une machine linux d ont
je voudrais renvoyer l'écran sur mon mac.
Machine : powerbook alu 15" 1.5 GHz
Système : Mac OS X 10.4.7 avec toutes les mises à jour faites

Voici les étapes qui sont faites pour me connecter :
0- Ouverture de X11
1- ssh -Y MachineLinux


-Y je ne connais pas.


----8<----8<----8<----8<----
-Y Enables trusted X11 forwarding.
---->8---->8---->8---->8----

Je ne connais pas la différence avec -X, mais sur mes Debian récentes,
il n'y a que le -Y qui fonctionne.
Voir ma question du Mer 17 mai 2006 19:24 sur le même forum.

ssh -X ne fonctionne pas de la même façon sur Mac OS X 10.3 et Mac OS
X 10.4.


0- ouverture X11 sur mac
1- export DISPLAY=localhost:0.0 (sur le mac)
2- ssh -X MachineLinux
3 sur le linux: xterm


1- Lancement de X11.app sur le mac.

2- Avec xterm ou Terminal.app, vérifer que la variable DISPLAY est bien
renseignée (utiliser export/setenv au besoin):

----8<----8<----8<----8<----
mac$ echo $DISPLAY
:0.0
---->8---->8---->8---->8----
Ca marche



3- Depuis la même fenêtre de terminal, se connecter sur le Linux puis
vérifier la valeur de DISPLAY sur celui-ci:

----8<----8<----8<----8<----
mac$ ssh -Y
linux$ echo $DISPLAY
:10.0
---->8---->8---->8---->8----
Et c'est là que le problème apparait car dans mon .tcshrc sur la

machine linux distante j'avais une ligne : setenv DISPLAY
${REMOTEHOST}:0.0 donc le echo $DISPLAY affichait NomDuMac:0.0 et
l'export ne marchait pas. Si je commente la ligne de setenv tout
fonctionne à nouveau et echo $DISPLAY affiche localhost:11.0

Ca m'embête un peu car le setenv DISPLAY ${REMOTEHOST}:0.0 du .tcshrc
sur la machine linux me sert quand je me connecte via un PC mais bon je
vais faire avec.

Merci à tous les deux pour votre aide et bonne journée.

Cordialement,

L'apprenti débutant



Avatar
Saïd
toto :

Ca m'embête un peu car le setenv DISPLAY ${REMOTEHOST}:0.0 du .tcshrc
sur la machine linux me sert quand je me connecte via un PC mais bon je
vais faire avec.



C'est une vieille methode de dix ans d'age pour l'export a distance de
l'affichage X11. C'est plus propre d'enlever la ligne. Quand tu dis
"quand je me connecte via un PC" ca veut dire PC linux ou PC windows
(+serveur X)

--
Sind zu sein und es seiend in einem Schiff. Fällt zu sein hat das Wasser.
Wer bleibt er? -- Heidegger

Avatar
toto

toto :

Ca m'embête un peu car le setenv DISPLAY ${REMOTEHOST}:0.0 du .tcshrc
sur la machine linux me sert quand je me connecte via un PC mais bon je
vais faire avec.



C'est une vieille methode de dix ans d'age pour l'export a distance de
l'affichage X11.
Voilà qui ne me rajeuni pas mais qui correspond à peu près à

l'année de la formation courte à l'administration de système UNIX
que j'ai suivi. Que le temps passe vite ;-))

C'est plus propre d'enlever la ligne. Quand tu dis
"quand je me connecte via un PC" ca veut dire PC linux ou PC windows
(+serveur X)
PC windows + serveur X


Bonne journée, cordialement,

L'apprenti débutant


Avatar
Saïd
toto :
C'est plus propre d'enlever la ligne. Quand tu dis
"quand je me connecte via un PC" ca veut dire PC linux ou PC windows
(+serveur X)
PC windows + serveur X




Dans ce cas tu peux utiliser la methode ssh si tu disposes d'un shell pour
windows (export DISPLAY=localhost:0.0 dans le shell windows, et ca roule).
Pas besoin d'un serveur ssh sur le windows. Ou alors modifier la ligne

setenv DISPLAY ${REMOTEHOST}:0.0
en
setenv ALTDISPLAY ${REMOTEHOST}:0.0

et si tu te logues depuis un PC windows, taper:

setenv DISPLAY $ALTDISPLAY


--
Saïd.
"Bless this, O Lord, that with it thou mayst blow thine enemies to tiny
bits, in thy mercy."
In the Book of Armaments, Chapter 4. (The Holy Hand Grenade)


Avatar
bertrand.NOSPAM.lupart
3- Depuis la même fenêtre de terminal, se connecter sur le Linux puis
vérifier la valeur de DISPLAY sur celui-ci:

----8<----8<----8<----8<----
mac$ ssh -Y
linux$ echo $DISPLAY
:10.0
---->8---->8---->8---->8----
Et c'est là que le problème apparait car dans mon .tcshrc sur la

machine linux distante j'avais une ligne : setenv DISPLAY
${REMOTEHOST}:0.0 donc le echo $DISPLAY affichait NomDuMac:0.0 et
l'export ne marchait pas. Si je commente la ligne de setenv tout
fonctionne à nouveau et echo $DISPLAY affiche localhost:11.0


C'est "localhost:11.0", car le flux X11 est encapsulé dans la connexion
ssh (cryptage).
Le linux se connecte sur son port 6011 local, qui est redirigé vers le
port 6000 de mac via la connection ssh déjà établie. Le mécanisme gère
l'authentification X11 tout seul.

Si tu mets "remotehost:0.0", ton linux se connecte sur le port TCP 6000
de ton Mac (pas de cryptage). Tu as alors besoin d'autoriser toi-même la
machine Linux à le faire (commandes xhost)

Au passage, on peut encapsuler d'autres ports dans une connexion ssh.
Voir -R et -L.

Ca m'embête un peu car le setenv DISPLAY ${REMOTEHOST}:0.0 du .tcshrc
sur la machine linux me sert quand je me connecte via un PC mais bon je
vais faire avec.


Tu peux doit pouvoir forwarder X11 avec le client ssh de ton windows.
PuTTY et OpenSSH le font.
Ce sera plus simple et plus sécurisé.

--
Bertrand


Avatar
bertrand.NOSPAM.lupart
3- Depuis la même fenêtre de terminal, se connecter sur le Linux puis
vérifier la valeur de DISPLAY sur celui-ci:

----8<----8<----8<----8<----
mac$ ssh -Y
linux$ echo $DISPLAY
:10.0
---->8---->8---->8---->8----
Et c'est là que le problème apparait car dans mon .tcshrc sur la

machine linux distante j'avais une ligne : setenv DISPLAY
${REMOTEHOST}:0.0 donc le echo $DISPLAY affichait NomDuMac:0.0 et
l'export ne marchait pas. Si je commente la ligne de setenv tout
fonctionne à nouveau et echo $DISPLAY affiche localhost:11.0


C'est "localhost:11.0", car le flux X11 est encapsulé dans la connexion
ssh (cryptage).
Le linux se connecte sur son port 6011 local, qui est redirigé vers le
port 6000 de mac via la connection ssh déjà établie. Le mécanisme gère
l'authentification X11 tout seul.

Si tu mets "remotehost:0.0", ton linux se connecte sur le port TCP 6000
de ton Mac (pas de cryptage). Tu as alors besoin d'autoriser toi-même la
machine Linux à le faire (commandes xhost)

Au passage, on peut encapsuler d'autres ports dans une connexion ssh.
Voir -R et -L.

Ca m'embête un peu car le setenv DISPLAY ${REMOTEHOST}:0.0 du .tcshrc
sur la machine linux me sert quand je me connecte via un PC mais bon je
vais faire avec.


Tu doit pouvoir forwarder X11 avec le client ssh de ton windows.
PuTTY et OpenSSH le font.
Ce sera plus simple et plus sécurisé.

--
Bertrand


Avatar
bertrand.NOSPAM.lupart
[Pour l'archive]

----8<----8<----8<----8<----
-Y Enables trusted X11 forwarding.
---->8---->8---->8---->8----

Je ne connais pas la différence avec -X, mais sur mes Debian récentes,
il n'y a que le -Y qui fonctionne.
Voir ma question du Mer 17 mai 2006 19:24 sur le même forum.

ssh -X ne fonctionne pas de la même façon sur Mac OS X 10.3 et Mac OS
X 10.4.


()

Pour des problèmes de sécurité, depuis OpenSSH 3.8:

----8<----8<----8<----8<----
* ssh(1) now uses untrusted cookies for X11-Forwarding.
Some X11 applications might need full access to the X11 server,
see ForwardX11Trusted in ssh(1) and xauth(1) for more information.
---->8---->8---->8---->8----

Il faut donc utiliser soit utiliser "ssh -Y" ou soit utiliser "ssh -X"
et rajouter "ForwardX11Trusted yes" dans la configuration du client ssh.
La première solution étant préférable.

Les problèmes liés au forward X11 sont discutés ici:
http://snakeoil.de/gcih.pdf

--
Bertrand


Avatar
blanc
Saïd wrote:

Ou alors modifier la ligne

setenv DISPLAY ${REMOTEHOST}:0.0
en
setenv ALTDISPLAY ${REMOTEHOST}:0.0

et si tu te logues depuis un PC windows, taper:

setenv DISPLAY $ALTDISPLAY


Plus simple encore faire un alias (ou un script à la rigueur) :

alias xpc 'setenv DISPLAY ${REMOTEHOST}:0.0'

(tu mets cette ligne dans ton .tcshrc par exemple)

Et le jour ou tu te connectes depuis le pc, tu fais juste la commande :

xpc

Voilà :-)

JPaul.

--
/==/==- Jean-Paul BLANC
/ /--/--// quelque-part (somewhere)
|/| L | en (in)
/|| = ||| FRANCE

1 2