Das Problem
Die meisten Benutzer möchten über ssh mit der Option "-X" eine Verbindung zu einem Server herstellen, um GUI-Programme auf dem Remote-Host über die Anzeige des Clients auszuführen. Ich möchte GUI-Programme auf dem physischen Monitor ausführen, der an den Server angeschlossen ist. Ist das möglich ? Lassen Sie mich genauer sein:
Meine Situation ist folgende: Ich habe eine Workstation ohne Tastatur oder Maus, an die jedoch ein Monitor angeschlossen ist. Ich möchte mit meinem Laptop eine SSH-Verbindung herstellen und in der Lage sein, ein grafisches Programm wie xeyes oder ssvnc zu starten und es auf dem Monitor der Workstation anzuzeigen.
[xapple@laptop ~]$ ssh workstation
Last login: Mon Sep 26 20:03:35 2011 from laptop
[xapple@workstation ~]$ export DISPLAY=:0
[xapple@workstation ~]$ xeyes
No protocol specified
Error: Can't open display: :0
Bearbeiten: zusätzliche Informationen
Ich sollte vielleicht ein paar Dinge klarer erklären:
- Ich habe Sudo-Zugriff auf die Workstation, ich kann bei Bedarf alles installieren.
- Auf der Workstation wird die GNOME-Benutzeroberfläche ausgeführt.
- Bevor ich Tastatur und Maus von der Workstation trennte, loggte ich mich in eine GNOME-Sitzung ein. Man kann daher meinen GNOME-Desktop derzeit auf dem Monitor der Workstation sehen.
- Ich möchte keine Programme von meinem Laptop auf der Workstation ausführen. Ich möchte Workstation-Programme auf der Workstation ausführen. Die xeyes oder eine andere ausführbare Datei befindet sich auf dem Remote-Server und sollte auf dem Monitor des Remote-Servers ausgeführt werden
- Ich verstehe, dass ich dadurch in einer Situation bin, in der mein Cursor nicht mit der Schnittstelle verbunden ist. Ich kann nicht auf Dinge klicken. Das ist ok.
Jede Hilfe sehr geschätzt!
xhost +
auf Ihrem Server ausgeführt?Antworten:
Jede xlib-Anwendung muss eine Verbindung zu einem xserver herstellen. Sie müssen der App die Verbindung zum Server wie folgt mitteilen:
-display
Der erste xserver kann normalerweise über die Verbindungszeichenfolge ': 0' erreicht werden. Versuchen Sie Folgendes:
oder dieses
quelle
XAUTHORITY
erforderlich, da der X11-Server eine temporäre Xauthority-Datei verwendet.Läuft auf dieser Workstation ein X Windows-Server? Ohne das ist alles strittig.
Sie benötigen ETWAS, um die Daten in Grafiken, Pixel, Farben und Orte zu verarbeiten. Ein "Monitor" ist ohne irgendeine Software nutzlos, um ihn auszuführen.
Vorausgesetzt, es ist. (aber aus dem Text klingt sicher anders)
Wenn die Hostnamen (und die entsprechende DNS-Auflösung über / etc / hosts oder DNS oder was auch immer) von 'Workstation' und 'Laptop' angegeben sind, ersetzen Sie die Hostnamen des Computers durch die entsprechenden IP-Adressen.
Sie können sich dann an dieser Stelle von der Workstation abmelden, da hierdurch die Berechtigungen für den Xserver der Workstation festgelegt werden, damit 'Laptop' eine Verbindung herstellen kann.
Wenn Sie Ihre Programme mit dem entsprechenden DISPLAY env var-Satz starten, können Anwendungen auf der Workstation angezeigt werden, während sie auf Ihrem Laptop ausgeführt werden.
-oder-
Beide Methoden funktionieren. Letzteres bewirkt, dass beim Start von dieser Shell aus alles, was mit X11 zu tun hat, auf der Workstation angezeigt wird. (hoffe das machte Sinn)
Die 'xhost'-Zeile soll dem Laptop die Erlaubnis geben, eine Verbindung zum Xserver der Workstation herzustellen. Ohne diese Option wird Ihnen die Berechtigung verweigert, es sei denn, Sie starten den X-Server ohne Berechtigungen, was nicht wirklich empfohlen wird. Der 'xhost'-Schutz ist immer noch lahm, da die Daten im Klartext zwischen Laptop und Workstation gesendet werden und abgehört werden könnten, aber es ist eine einfache Lösung.
Wenn Sie Datenschutz wünschen, müssen Sie einen verschlüsselten Tunnel zwischen Ihrem Laptop und der Workstation einrichten (Port 6000 für Anzeige: 0). Ja, an diesem Punkt wird es komisch.
Wenn Sie sich in einer kontrollierten Umgebung befinden, ist die Verwendung des Befehls 'xhost + Laptop' ausreichend. Wenn Sie den Teil 'Laptop' dieses Befehls 'xhost +' verlassen, kann sich JEDER mit dem Xserver verbinden und Dinge anzeigen.
Denken Sie daran, dass Ihre Maus NICHT mit dem Xserver der Workstation verbunden ist und Sie NICHT in der Lage sind, Fenster zu manipulieren oder auf Dinge zu klicken.
Wenn Sie möchten, dass die Maus angeschlossen wird, würde ich etwas wie x2x, synergy, vnc oder eine X Windows-basierte Bildschirmfreigabeanwendung empfehlen.
quelle