webentwicklung-frage-antwort-db.com.de

Auf MacOS Sierra kann "ssh -X" nicht ausgeführt werden

Ich habe gerade ein Upgrade auf MacOS Sierra durchgeführt und festgestellt, dass ich den Befehl "ssh -X" nicht mehr im Terminal ausführen kann. Früher wurden xterm-Fenster gestartet, aber jetzt habe ich nicht einmal mehr die Option -X eingefügt. Es hat einwandfrei funktioniert, kurz bevor ich aktualisiert habe. Abgesehen davon, dass ich von OS X Yosemite auf MacOS Sierra umgestiegen bin, habe ich nichts anderes am Setup geändert.

BEARBEITEN:

Wie vorgeschlagen, habe ich dies in den Debug-Protokollen gefunden, die dieses Problem verursachen könnten.

debug1: No xauth program.
Warning: untrusted X11 forwarding setup failed: xauth key data not generated
29
Dodie

Ich musste XQuartz nicht neu installieren, aber basierend auf der Antwort von Matt Widjaja kam ich auf eine Verfeinerung.

  • Sudo vi /etc/ssh/ssh_config (Dies ist ssh client config, nicht sshd_config)
    • Unter dem Host * Eintrag hinzufügen (oder gegebenenfalls pro Host hinzufügen)
      • XAuthLocation /usr/X11/bin/xauth (Der Ort von xauth hat sich in Sierra geändert
      • ServerAliveInterval 60 (Pingt den Server alle 60 Sekunden an, um Ihre SSH-Verbindung aufrechtzuerhalten.)
      • ForwardX11Timeout 596h (Ermöglicht nicht vertrauenswürdige X11-Verbindungen über die Standardeinstellung von 20 Minuten hinaus)

Sie müssen ssh nicht neu starten, es sei denn, Sie haben bereits Verbindungen zum ssh-Client.

Es klingt so, als wäre -Y (vertrauenswürdiges X11) dem nicht vertrauenswürdigen vorzuziehen. Wenn Sie auf Trusted umschalten, kann die ForwardX11Timeout-Zeile möglicherweise entfernt werden.

Die ServerAliveInterval-Zeile ist ebenfalls eine optionale Einstellung.

Möglicherweise können diese Änderungen auch in ~/.ssh/config (die Konfigurationsdatei des Benutzers), aber die Berechtigungen müssen korrekt sein.

BEARBEITEN: Ich habe ForwardX11 und ForwardX11Trusted entfernt. Sie werden nicht benötigt und ForwardX11 ist weniger sicher und verursacht Probleme für Git (oder andere Tools, die ssh verwenden).

47
Christian

Ich habe festgestellt, dass macOS Sierra meine X11-Einstellungen zurückgesetzt hat, sodass mein xAuth-Programm deaktiviert wurde. So aktivieren Sie xAuth unter macOS Sierra erneut:

  1. Installieren Sie X11/xQuartz neu, um möglicherweise alle von macOS Sierra vorgenommenen Änderungen zurückzusetzen. Ich habe auch die folgenden Änderungen vorgenommen, obwohl es so klingt, als ob dies ausreichen könnte.
  2. Laden Sie ein Terminal auf
  3. Sudo <text editor of your choice> /etc/ssh/sshd_config
  4. Kommentieren Sie in dieser Datei die folgenden Zeilen aus und setzen Sie sie auf diese Werte:
    • X11Forwarding yes
    • X11DisplayOffset 10
    • [Update am 07.10.2017] Wenn Sie X11/XQuartz neu installieren, sollte vor allem Folgendes hinzugefügt werden: XAuthLocation <path_to_your_xauth> wo meins war in/opt/X11/bin/xauth. Dies war wahrscheinlich der goldene Schritt, der erklärte, warum die Neuinstallation funktioniert hat.
  5. Starten Sie ssh über das Terminal neu. Ich habe dies getan, indem ich ausgeführt habe:
    • Sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
    • Sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
26
Matt Widjaja

Ich habe die gleichen Probleme mit der X11-Weiterleitung mit dem -X Option nach dem Upgrade auf Mac OS X Sierra.

Schauen Sie sich die ssh Option an -Y (vertrauenswürdige X11-Weiterleitung). Während dem Benutzen ssh -Y <Host> Dinge funktionieren für mich.

11
ebner

Nur die eine Zeile hinzufügen XAuthLocation /usr/X11/bin/xauth bis /etc/ssh/ssh_config funktioniert auf meinem Mac mit MacOS Sierra, um in einen Linux-Host zu sshen und X Windows-Programme aus der Ferne auszuführen und sie unter XQuartz auf meinem Mac anzeigen zu lassen.

5
Peter Edwards

Meine Lösung hierfür war die folgende.

(1) Starten Sie xquartz, bevor Sie den ssh -X Versuchen. In den xquartz-Optionen habe ich gerade 'Open at login' aktiviert und dann läuft es immer im Hintergrund.

(2) Gehen Sie zum Menü "Einstellungen" von xquartz und klicken Sie im Fenster "Sicherheit" auf das Kästchen "Verbindungen von Clients zulassen".

Nachdem Sie diese Dinge getan haben, funktioniert alles einwandfrei.

5
cslage

Es ist eine alte Frage, aber ich bin vor kurzem auf das gleiche Problem auf meinem Mac gestoßen, auf dem 10.12.6 ausgeführt wird. Die Variable DISPLAY ist im Terminal nicht gesetzt und ssh -X funktioniert nicht. Folgendes habe ich getan, um das Problem zu lösen:

  1. Installiere XQuartz mit Homebrew neu: brew cask install xquartz (die Option --forced kann notwendig sein)

  2. Fügen Sie den XQuartz-Launcher zum Systemstandard hinzu (folgen Sie der Lösung in diesem Reddit post : launchctl load -w /Library/LaunchAgents/org.macosforge.xquartz.startx.plist

  3. Starten Sie das System neu.

Danach ist meine Variable DISPLAY richtig eingestellt:

$ echo $DISPLAY /private/tmp/com.Apple.launchd.mfXFpzZ0gC/org.macosforge.xquartz:0

Und die X11-Weiterleitung in ssh funktioniert ebenfalls.

4
user2032994

Ich habe gerade mein Macbook von El Capitan auf Sierra aktualisiert. Die einfache Neuinstallation von Xquartz hat für mich mit ssh -X [Linux-Server] den Trick gemacht

2
peter

Wenn Quartz installiert ist, muss lediglich die Zeile "X11Trusted yes" unter "Host *" in der Datei/etc/ssh/ssh_config hinzugefügt werden.

1
Jim Ramsey

Ich habe den ganzen Tag nach einer Lösung gesucht, nur um festzustellen, dass die neueste Sierra nicht mit installiertem XQuartz ausgeliefert wird https://support.Apple.com/en-gb/HT201341 . Nach der Installation ( https://www.xquartz.org/ ) funktioniert alles.

1
user8552682

xQuartz neu zu starten hat bei mir funktioniert.

0
mike