8 votes

Mountain Lion : problèmes avec ssh -X

Comment faire fonctionner sur Mountain Lion X11 forwarding via SSH ?

Ejemplo:

ssh -X some@example.com xterm

mon /etc/sshd_config contient

X11Forwarding yes
#X11DisplayOffset 10
X11UseLocalhost yes

# XAuthLocation added by XQuartz (http://xquartz.macosforge.org)
XAuthLocation /opt/X11/bin/xauth

Redémarrage de sshd avec

launchctl stop com.openssh.sshd
launchctl start com.openssh.sshd

(et aussi dans les Préférences -> Partage)

J'ai démarré XQuatrz, et depuis le xterm je lance

ssh -v -X mrp@192.168.1.17 xterm        #this part not works :)

a obtenu le suivant :

debug1: Authentication succeeded (keyboard-interactive).
Authenticated to 192.168.1.17 ([192.168.1.17]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Requesting X11 forwarding with authentication spoofing.
debug1: Sending command: xterm
debug1: Remote: No xauth program; cannot forward with spoofing.
X11 forwarding request failed on channel 0
xterm: Xt error: Can't open display: 
xterm: DISPLAY is not set
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype eow@openssh.com reply 0
debug1: channel 0: free: client-session, nchannels 1
Transferred: sent 2656, received 2480 bytes, in 0.1 seconds
Bytes per second: sent 29582.4, received 27622.1
debug1: Exit status 1

à partir du xterm

$ echo $DISPLAY
/tmp/launch-BHtJfJ/org.macosforge.xquartz:0

en le remplaçant par :0 n'aide pas

exécution à partir de l'xterm

$ xauth list
jonatan.local/unix:0  MIT-MAGIC-COOKIE-1  f4f85682af36ae7d95cd3d244cb6beb2
192.168.1.9:0  MIT-MAGIC-COOKIE-1  f4f85682af36ae7d95cd3d244cb6beb2
jonatan.local:0  MIT-MAGIC-COOKIE-1  f4f85682af36ae7d95cd3d244cb6beb2

Une idée ?

8voto

TDHawk Points 11

Vous devez ouvrir XQuartz, aller à X11 Préférences Sécurité Il y a deux cases à cocher : désactivez la première et activez la seconde. Redémarrez XQuartz et réessayez. Vous devrez également définir l'élément $DISPLAY variable comme celle-ci :

export DISPLAY=clienthost:0.0

1voto

Terminality Points 223

Je ne sais pas trop comment cela peut se produire, mais le message d'erreur provient de la source SSH :

/* Try to open a socket for the local X server. */
display = getenv("DISPLAY");
if (!display) {
    error("DISPLAY not set.");
    return -1;
}

Cela indique que ssh pense que la variable n'est pas définie du tout (c'est-à-dire qu'elle n'est pas malformée ou autre, mais manquante).

Je ne suis pas sûr que SSH modifie le contexte de l'utilisateur de sorte qu'il obtienne un environnement différent. Vous pouvez essayer

ssh -vvv ....

(plusieurs "v") pour obtenir plus de données de débogage, peut-être que cela donne un indice quelque part dans le démarrage.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X