Je viens de passer à MacOS Sierra et je me suis rendu compte que je n'arrivais plus à exécuter la commande "ssh -X" dans le terminal. Auparavant, il lançait des fenêtres xterm, mais maintenant, c'est comme si je n'avais plus mis l'option -X. Cela fonctionnait parfaitement bien avant que je mette à jour. À part aller d’OS X Yosemite à MacOS Sierra, je n’ai rien changé d’autre dans la configuration.
MODIFIER:
Comme suggéré, voici ce que j'ai trouvé dans les journaux de débogage qui pourrait être à l'origine de ce problème.
debug1: No xauth program.
Warning: untrusted X11 forwarding setup failed: xauth key data not generated
Je n'ai pas eu besoin de réinstaller XQuartz, mais, à partir de la réponse de Matt Widjaja, j'ai apporté un raffinement.
Sudo vi /etc/ssh/ssh_config
(Ceci est la configuration du client ssh, pas sshd_config) Host *
entry add (ou ajoutez le cas échéant par hôte) XAuthLocation /usr/X11/bin/xauth
_ (L'emplacement de xauth a été modifié dans Sierra)ServerAliveInterval 60
(Envoie une requête ping au serveur toutes les 60 secondes pour maintenir votre connexion ssh en vie)ForwardX11Timeout 596h
_ (Autorise les connexions X11 non fiables au-delà de la valeur par défaut de 20 minutes)Pas besoin de redémarrer ssh, sauf bien sûr les connexions client ssh existantes.
Il semble que -Y (X11 de confiance) serait préférable à non fiable. Si vous passez en mode de confiance, la ligne ForwardX11Timeout peut probablement être supprimée.
La ligne ServerAliveInterval est également une préférence facultative.
Il est également possible d’apporter ces modifications à ~/.ssh/config
(fichier de configuration de l'utilisateur), mais les autorisations doivent être correctes.
EDIT: j'ai supprimé ForwardX11 et ForwardX11Trusted. Ils ne sont pas nécessaires et ForwardX11 est moins sécurisé et pose des problèmes pour git (ou d’autres outils utilisant ssh).
J'ai remarqué que macOS Sierra avait réinitialisé mes paramètres X11 afin de désactiver mon programme xAuth. Pour réactiver xAuth sur macOS Sierra:
Sudo <text editor of your choice> /etc/ssh/sshd_config
X11Forwarding yes
X11DisplayOffset 10
XAuthLocation <path_to_your_xauth>
où le mien était dans/opt/X11/bin/xauth. C’est probablement l’étape parfaite qui explique pourquoi la réinstallation a fonctionné.Sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
Sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
J'ai les mêmes problèmes avec le transfert X11 avec le -X
option après la mise à niveau vers Mac OS X Sierra.
Regardez l'option ssh -Y
_ (transfert X11 de confiance). En utilisant ssh -Y <Host>
les choses fonctionnent pour moi.
Il suffit d'ajouter la ligne XAuthLocation /usr/X11/bin/xauth
à /etc/ssh/ssh_config
fonctionne sur Mac, sous MacOS Sierra, pour ssh sur un hôte Linux et pouvoir exécuter des programmes X Windows à distance et les afficher sous XQuartz sur mon Mac.
Ma solution à ceci était la suivante.
(1) Lancez xquartz
avant d’essayer le ssh -X
. Dans les options xquartz, je viens d’activer "Ouvrir lors de la connexion", puis il est toujours exécuté en arrière-plan.
(2) Allez dans le menu xquartz
Preferences et, dans la fenêtre Sécurité, cochez la case "Autoriser les connexions des clients".
Après avoir fait ces choses, tout fonctionne bien.
C'est une vieille question, mais j'ai récemment rencontré le même problème sur mon Mac sous 10.12.6. La variable DISPLAY
n'est pas définie dans le terminal et ssh -X
ne fonctionne pas. Voici ce que j'ai fait pour résoudre le problème:
Réinstallez XQuartz en utilisant Homebrew: brew cask install xquartz
(l'option --forced
peut être nécessaire)
Ajoutez le lanceur XQuartz à la valeur par défaut du système (en suivant la solution proposée dans ce article Reddit : launchctl load -w /Library/LaunchAgents/org.macosforge.xquartz.startx.plist
Redémarrez le système.
Après cela, ma variable DISPLAY
est définie correctement:
$ echo $DISPLAY /private/tmp/com.Apple.launchd.mfXFpzZ0gC/org.macosforge.xquartz:0
Et la redirection X11 en ssh fonctionne également.
Je viens de mettre à niveau mon macbook d’El Capitan à Sierra. Simplement réinstaller Xquartz a fait l'affaire pour moi, en utilisant ssh -X [serveur linux]
Si Quartz est installé, il suffit d’ajouter la ligne "X11Trusted yes" sous "Host *" dans le fichier/etc/ssh/ssh_config.
J'ai passé toute la journée à chercher une solution et à me rendre compte que la récente Sierra n'est pas livrée avec XQuartz installé https://support.Apple.com/en-gb/HT201341 . À l'installation ( https://www.xquartz.org/ ), tout fonctionne.
redémarrer XQuartz a fonctionné pour moi.