Es wäre toll, x über ssh tunneln zu können; warum muss man stattdessen XQuartz (usw.) verwenden?
Die einfache Antwort lautet: Terminal ist ein Terminalemulator – es ist kein X11-Server. Es dient dazu, einen textbasierten Kommunikationsendpunkt zwischen Ihrem Mac und anderen Computern bereitzustellen.
Terminal ist nicht mehr ein X11- Server als Gnome-Terminal unter Linux oder cmd unter Windows. Das heißt: Es ist überhaupt kein X11-Server. Sie müssen einen X11-Server auf Ihrem lokalen Computer ausführen, damit getunnelte, grafische X11-Anwendungen ihre Benutzeroberflächen auf Ihrem Mac zeichnen können. Dies unterscheidet sich für Mac nicht wirklich von etwas wie Linux, es ist nur so, dass Linux standardmäßig immer einen X11-Server zum Zeichnen Ihres Desktops ausführt, sodass es etwas eleganter gehandhabt wird als auf dem Mac. Sie müssen nur die Berechtigungen Ihres X11-Servers öffnen und ssh-Tunneling und X11-Weiterleitung auf einem Linux-Desktop scheinen zu funktionieren.
Der XQuartz-Server , den Sie unter OS X ausführen, holt Ihnen einfach den fehlenden X11-Server, den Sie in Ihrer OS X-Sitzung benötigen, um das Zeichnen der weitergeleiteten UI-Befehle auf Ihrem OS X-Desktop zu ermöglichen. Dies ist nichts, was eine Terminal-Anwendung jemals implementieren würde oder sollte. Es gehört nicht dazu, ein Terminal zu sein. Es ist eine ganz andere Sache.
Ich möchte auch auf etwas eingehen, das Sie in Ihrer Frage gesagt haben:
Es wäre toll, x über ssh tunneln zu können
Ich nehme an, Sie meinen "es wäre großartig, eine X11-Weiterleitung von einer in Terminal.app gestarteten ssh-Sitzung zu meinem laufenden XQuartz-Server durchzuführen". Du kannst das!
Wenn Sie ssh in Terminal.app verwenden, schließen Sie einfach die -X
Option zum Aktivieren der X-Weiterleitung ein und Ihr Mac startet XQuartz automatisch. Keine Notwendigkeit, die Terminal-App in XQuartz zu verwenden, was ziemlich scheiße ist.
Sie können auch Folgendes bearbeiten ~/.ssh/config
und hinzufügen:
ForwardX11 yes
in diese Datei, um die X-Weiterleitung standardmäßig für alle SSH-Sitzungen zu aktivieren. Sie können sogar X-Programme auf dem Remote-Rechner im Hintergrund wie folgt starten:
ssh username@remoteserver -f -X xeyes
Das funktioniert vom Terminal aus.
DilithiumMatrix
Jan C.
DilithiumMatrix
Jan C.
Jan C.
mmmmmm