X-Weiterleitung über SSH vom Mac an eine Linux-Box

8439
Alex B

Ich muss Mac-Anwendungen auf einem Remote-Mac-Computer ausführen und auf dem X-Server eines lokalen Linux-Computers anzeigen (viele Artikel im Internet scheinen genau zu beschreiben, wie Sie das Gegenteil tun würden).

$ ssh -X mac-box $ cd /Developer/Applications/Xcode.app $ ./Contents/MacOS/Xcode Sat Oct 3 20:41:26 mac-box.local Xcode[15634] <Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged. _RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL. ^C 
  1. Meine $DISPLAYVariable scheint leer zu sein. Wie sollte es aussehen, damit die Weiterleitung korrekt funktioniert?
  2. Kann ich OSX-Anwendungen überhaupt auf diese Weise ausführen?
8

3 Antworten auf die Frage

6
Arjan

Wenn das Aqua eines Mac ein X wäre, müssten Sie X (XQuartz) nicht ausführen, um andere X-Programme auf einem Mac zu starten ...

Also: nein, ich denke du kannst das nicht.


Um Ihnen den Einstieg zu erleichtern, würde ich zuerst versuchen, echte X-Programme an Ihre Linux-Maschine weiterzuleiten:

  • Auf Ihrem Mac: Installieren Sie XQuartz, falls Sie dies noch nicht getan haben (wie XQuartz 2.3.4 von optionalen Installationen auf der OS X 10.6-DVD oder laden Sie das neueste aus dem XQuartz-Projekt herunter ).

  • Auf Ihrem Mac: Wechseln Sie X11Forwarding noin X11Forwarding yes(und stellen Sie sicher, dass sich kein Hash ( #) vor dieser Zeile befindet) sudo vi /private/etc/sshd_config, oder verwenden Sie einen sedBefehl von Apples Enabling X11 Forwarding . Dadurch wird auch sichergestellt, dass die DISPLAYVariable automatisch gesetzt wird.

  • Auf Ihrem Linux-Rechner:

    ssh -Y user @ mac-box xterm 

(Zu den nächsten Schritten gehören Googling für Xephyr(oder älter Xnest). Wenn Sie auf Probleme mit der Tastatur stoßen : Google xmodmapoder xevzum Debuggen. Oder für Probleme mit Schriftarten: Google xfsund xset +fp tcp/mac-box:7100. Ich bezweifle jedoch, dass Sie Aqua-Programme auf diese Weise ausführen können.

Leider hast du recht. Ich kann Xcode und iPhone-Simulator nicht über SSH ausführen, obwohl ich Xterm ausführen kann. Ich musste XQuartz auch nicht auf Lager 10.6 installieren. Alex B vor 14 Jahren 0
4
Doug Harris

Es scheint, als ob Ihr Hauptziel hier ist, laufende Mac-Anwendungen auf einem Linux-Computer anzuzeigen. Arjan hat recht, X-Forwarding funktioniert dafür nicht.

Sie sollten die Bildschirmfreigabe im Freigabebereich in den Systemeinstellungen aktivieren. Dadurch wird ein VNC-Server eingeschaltet. Wenn Sie einen VNC-Client auf Ihrem Linux-Computer verwenden, können Sie Ihren Mac-Desktop sehen. Dieser Artikel zeigt, wie man es auf der Mac-Seite einrichtet (Schritte 1 bis 3), geht (ein bisschen zu viel) über das Einrichten von Dyndns und das Öffnen von Ports in einer Airport-Basisstation vor und hat am Ende ein kleines bisschen über das Einstellen auf der Client-Seite (Schritte 20-21).

Es gibt auch viele Programme, die nur eine einzige Anwendung (und nicht den gesamten Desktop) gemeinsam nutzen. Ich denke, man kann das sogar mit der neuesten Skype-Plattform tun. (Ich bin nicht sicher, ob es Skype auch erlaubt, die Remote-Maschine zu steuern, anstatt nur auf den Bildschirm zu schauen.) Arjan vor 14 Jahren 0
Ich wünschte, ich könnte es vermeiden. Es scheint, dass VNC an diesem Punkt die einzige Alternative bleibt. Alex B vor 14 Jahren 0
-2
BGP Acharya

Benutz einfach

su -lm <usrname-to-proxy-for> 

in eine Shell zu gelangen, wo keine X11-Probleme auftreten. Siehe Manpages für Details zur Option '-m'.

* -m Lass die Umgebung unverändert. Die aufgerufene Shell ist Ihre Login-Shell, und es werden keine Verzeichnisänderungen vorgenommen. * - Wie hängt das mit der Frage zusammen? Arjan vor 11 Jahren 0