Öffnen von Firefox in einem Centos-Linux-Terminal

3

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.

Pulsarjune
quelle
Probieren Sie es auch mit dem Schalter -Y aus.
Keith
Ja, das öffnet auch einen Firefox-Browser.
Oh, SSH verwendet keine Anzeige 0. Versuchen SieDISPLAY=:10.0
Keith
danke für deine vorschläge, aber ich erhalte jetzt den fehler: kann display:: 10.0 nicht öffnen.
1
Warum muss es dann auf Ihrem lokalen Computer geöffnet werden? Die Probleme, die auftreten, hängen damit zusammen, dass Sie ein GUI-Programm von einem Remote-Server aus öffnen und es auf Ihrem lokalen Computer anzeigen lassen. Wenn Sie die Tests auf dem Server ausführen möchten, ist keines der beschriebenen Probleme ein Problem. Vielleicht müssen Sie Ihre Frage klären?
Terdon

Antworten:

1

Normalerweise könnten Sie in einem vertrauenswürdigen Netzwerk (z. B. Heimnetzwerk usw.) davonkommen

xhost +hostname

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.

ssh -x remotehostname "DISPLAY=localhost:10.0 firefox"

Wenn ssh eine Verbindung herstellt und Sie die X11-Weiterleitung über den -xSwitch 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.

Avery Payne
quelle
Was tut es? Woher weiß ich, dass es mein System nicht beschädigt ? Diese Antwort bedarf einer Erklärung.
Gronostaj
Die Antwort wird kurz geändert. Ich habe im Moment nicht genug Zeit, um wirklich alles darzulegen, da ich dringendere Dinge zu erledigen habe.
Avery Payne
0

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