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.
9
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 diesecho $DISPLAY
auf dem Remote-Computer tun , sollten Sie so etwas wie sehenlocalhost: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.
quelle
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.
quelle
Das Einstellen
$DISPLAY
ist jedoch nur die halbe Miete. Um die Clients auf der Serverseite authentifizieren zu können, wirdssh
auchxauth
ein neues Authentifizierungscookie erstellt. Siehexauth list
und~/.Xauthority
.quelle
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 ...
quelle