Ich versuche, Firefox vom Terminal auf einem Server mit einem Centos-Betriebssystem auszuführen. Wann immer ich den Befehl eingebe:
ssh - X hostname firefox
Ich kann Firefox erfolgreich öffnen, aber ich kann nicht remote auf den Server ssh und Firefox öffnen. Ich erhalte die folgende Fehlermeldung, nachdem ich export DISPLAY =: 0 angegeben und "firefox" eingegeben habe
No protocol specified
No protocol specified
Error: cannot open display: :0
Es gibt viele Foren für dieses Problem online und die einzigen nützlichen Vorschläge, die ich ausprobiert habe:
export XAUTHORITY=/home/<user>/.Xauthority
Obwohl ich Firefox zum Öffnen unter einem bestimmten Benutzer benötige, wird es auch nicht unter root geöffnet.
DISPLAY=:10.0
Antworten:
Normalerweise könnten Sie in einem vertrauenswürdigen Netzwerk (z. B. Heimnetzwerk usw.) davonkommen
Dadurch wird die X11-Hoststeuerung für Ihre lokale Anzeige aktiviert. Hiermit kann eine X11-Verbindung vom Remotehost hostname zum lokalen X11-Server hergestellt werden.
Beachten Sie bitte, dass die X11-Hoststeuerung ein alter, alter Mechanismus ist, der von Natur aus nicht sicher ist. Es bietet eine rudimentäre Möglichkeit der Zugriffskontrolle über IP-Adressen oder die Auflösung von Hostnamen. Aus diesem Grund würden Sie ssh verwenden, um eine Verbindung zu einem Remote-Host herzustellen: Es verschlüsselt alle Daten und sichert die Verbindung von Punkt zu Punkt.
In diesem Fall ist dies nicht erforderlich , da Ihre Remote-Umgebung (ordnungsgemäß) so eingerichtet sein sollte, dass der IP-Zugriff über das Loopback-Gerät möglich ist. Aber es ist hier als Referenz aufgeführt.
Wenn ssh eine Verbindung herstellt und Sie die X11-Weiterleitung über den
-x
Switch angeben , wird eine Bindung für die Anzeige Nummer 10 am Loopback-Connector (Adresse 127.0.0.1) hergestellt (dies ist normalerweise die Standardeinstellung, kann jedoch geändert werden). Die Umgebungsvariable DISPLAY wird normalerweise verwendet, um die Verbindung eines X11-Programms zu einer anderen Anzeige oder Maschine umzuleiten.Wir setzen also effektiv die Umgebungsvariable, die Firefox anweist, eine Verbindung zu einer gefälschten Anzeige 10.0 herzustellen, die sich auf 127.0.0.1 befindet. Diese wird dann rückwärts zu Ihrer lokalen X11-Anzeige getunnelt.
quelle
Versuchen Sie es mit Kleinbuchstaben x!? Stellen Sie außerdem sicher, dass zwischen '-' und 'x' kein Leerzeichen steht.
ssh -x Hostname Firefox
Eine Alternative zum Ausprobieren (wortreichere Methode, aber möglicherweise eine andere Fehlermeldung, die hilfreicher ist):
originalhost> ssh remotehost remotehost> setenv ANZEIGE originalhost: 0
originalhost> xhost + remotehost> firefox
quelle