Bei Verwendung ssh -X
wird die ausführbare Datei kopiert und lokal ausgeführt oder auf dem Hostcomputer. Da es als X11-Weiterleitung bezeichnet wird, denke ich, dass das Fenster auf meinem Computer gezeichnet ist, aber auf dem Host ausgeführt wird.
Bei Verwendung ssh -X
wird die ausführbare Datei kopiert und lokal ausgeführt oder auf dem Hostcomputer. Da es als X11-Weiterleitung bezeichnet wird, denke ich, dass das Fenster auf meinem Computer gezeichnet ist, aber auf dem Host ausgeführt wird.
Antworten:
Die ausführbare Datei wird auf dem Remotecomputer ausgeführt und auf dem lokalen Computer angezeigt (gezeichnet). Was ssh -X remote
tut , ist startet einen Proxy - X11 - Server auf der Remote - Maschine. Wenn Sie dies echo $DISPLAY
auf dem Remote-Computer tun , sollten Sie so etwas wie sehen localhost:21.0
. Dies weist das auf dem Remotecomputer ausgeführte Programm an, Zeichenbefehle mit der ID 21 an den X11-Server zu senden. Dadurch werden diese Befehle an den realen X11-Server weitergeleitet, der auf dem lokalen Computer ausgeführt wird und auf Ihrem Bildschirm zeichnet. Diese Weiterleitung erfolgt über eine verschlüsselte SSH-Verbindung, sodass sie nicht (leicht) abgehört werden können.
Im Gegensatz zu Windows, Mac OS usw. wurde X11 von Anfang an so konzipiert, dass Programme über ein Netzwerk ausgeführt werden können, ohne dass Remotedesktop erforderlich ist. Für eine Weile waren X11 Thin Clients beliebt. Es handelt sich im Grunde genommen um einen abgespeckten Computer, auf dem nur ein X11-Server ausgeführt wird. Alle Programme werden irgendwo auf einem Anwendungsserver ausgeführt.
Die Anwendung wird remote ausgeführt, mit Ausnahme der X-Komponenten (dh Rendern der x-Befehle usw.), die lokal ausgeführt werden. Jede Clientanwendung verwendet normalerweise den lokalen X-Server, um die Benutzeroberfläche anzuzeigen. In diesem Fall werden die Befehle über den verschlüsselten SSH-Kanal vom Remote-Computer an Ihren lokalen Computer gesendet und dort angezeigt.
Der Schlüssel kann darin bestehen, zu erkennen, dass der X-Server eine einzelne Sache ist, die einem Benutzer Grafiken bereitstellt, und dass alle verschiedenen Programme, die Grafiken benötigen, X-Clients sein und eine Verbindung zu einem Server herstellen müssen. Die Schnittstelle zwischen Client-Programmen und dem X-Server wurde von Anfang an so konzipiert, dass Verbindungen mit Remote-Programmen unterstützt werden, nicht nur mit denen auf dem lokalen Computer.
In einem Netzwerk, das verrückt genug ist, kann ein Programm überall ausgeführt werden und seine Grafiken überall anders anzeigen ...