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

9

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 es umgekehrt machen 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 soll es aussehen, damit die Weiterleitung richtig funktioniert?
  2. Kann ich OSX-Anwendungen überhaupt auf diese Weise ausführen?
Alex B.
quelle

Antworten:

6

Wenn das Aqua eines Mac 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 tun.


Um Ihnen den Einstieg zu erleichtern, würde ich zunächst versuchen, echte X-Programme auf Ihren Linux-Computer weiterzuleiten:

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

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

  • Auf Ihrem Linux-Computer:

    ssh -Y user @ mac-box
    xterm
    

(Einige der nächsten Schritte könnten dann Googeln für Xephyr(oder ältere Xnest) Schritte umfassen . Und wenn Sie auf Tastaturprobleme stoßen : Google xmodmapoder xevzum Debuggen verwenden. Oder für Schriftprobleme: Google xfsund xset +fp tcp/mac-box:7100. Aber ich bezweifle, dass Sie Aqua-Programme auf diese Weise ausführen können.)

Arjan
quelle
1
Leider hast du recht. Ich kann Xcode und iPhone Simulator nicht über SSH ausführen, obwohl ich xterm ausführen kann. Außerdem musste ich XQuartz nicht auf Lager 10.6 installieren.
Alex B
@AlexB Hat sich in den letzten 10 Jahren etwas geändert?
Muhammad bin Yusrat
4

Es klingt so, als ob Ihr Hauptziel hier darin besteht, laufende Mac-Anwendungen auf einem Linux-Computer anzuzeigen. Arjan hat recht, die X-Weiterleitung funktioniert dafür nicht.

Sie sollten die Bildschirmfreigabe im Bereich "Freigabe" 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 Sie es auf der Mac-Seite einrichten (Schritte 1 bis 3), wie Sie (etwas zu viel) Dyndns einrichten und Ports in einer Flughafen-Basisstation öffnen auf der Client-Seite (Schritte 20-21).

Doug Harris
quelle
Außerdem gibt es viele Programme, die nur eine einzige Anwendung (und nicht den gesamten Desktop) gemeinsam nutzen. Ich denke, man kann das sogar mit dem neuesten plattformübergreifenden Skype machen. (Ich bin nicht sicher, ob Skype es einem erlaubt, den Remote-Computer zu steuern , anstatt nur auf seinen Bildschirm zu spähen.)
Arjan
Ich wünschte, ich könnte es vermeiden. Es scheint, dass VNC derzeit die einzige Alternative bleibt.
Alex B
-2

Benutz einfach

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

um in eine Shell einzutreten, in der keine X11-Probleme auftreten. Weitere Informationen zur Option '-m' finden Sie auf den Manpages.

BGP Acharya
quelle
-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