web-dev-qa-db-fra.com

Impossible d'exécuter "ssh -X" sur MacOS Sierra

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
29
Dodie

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)
    • Sous le 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).

47
Christian

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:

  1. Réinstallez X11/xQuartz pour probablement réinitialiser les modifications apportées par macOS Sierra. J'ai également apporté les modifications suivantes ci-dessous, bien que cela puisse sembler suffisant.
  2. Charger un terminal
  3. Sudo <text editor of your choice> /etc/ssh/sshd_config
  4. Dans ce fichier, décommentez les lignes suivantes et définissez-les sur ces valeurs:
    • X11Forwarding yes
    • X11DisplayOffset 10
    • [Mise à jour du 10/07/2017] Lorsque vous réinstallez X11/XQuartz, vous devez avant tout ajouter un: 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é.
  5. Redémarrez ssh via le terminal. Je l'ai fait en exécutant:
    • Sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
    • Sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
26
Matt Widjaja

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.

11
ebner

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.

5
Peter Edwards

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.

5
cslage

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:

  1. Réinstallez XQuartz en utilisant Homebrew: brew cask install xquartz (l'option --forced peut être nécessaire)

  2. 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

  3. 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.

4
user2032994

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]

2
peter

Si Quartz est installé, il suffit d’ajouter la ligne "X11Trusted yes" sous "Host *" dans le fichier/etc/ssh/ssh_config.

1
Jim Ramsey

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.

1
user8552682

redémarrer XQuartz a fonctionné pour moi.

0
mike