Ich habe mich bei einem Remote-Server angemeldet und versuche, eine x-Anwendung (z. B. Firefox) anzuzeigen. Es wird jedoch eine Fehlermeldung angezeigt. Das Folgende sind meine Versuche, Firefox zu öffnen
Black@Black-PC ~
$ ssh -X kwagjj@$labserver -p 122
[kwagjj@James5 ~]$ firefox
Error: no display specified
[kwagjj@James5 ~]$ exit
logout
Connection to 143.248.146.204 closed.
Black@Black-PC ~
$ ssh -Y kwagjj@$labserver -p 122
[kwagjj@James5 ~]$ firefox
Error: no display specified
[kwagjj@James5 ~]$
Ich habe -X, -Y verwendet, weil ich irgendwo gelesen habe, dass diese beiden Optionen mit den Anmeldeinformationen für X11 zusammenhängen und diese Schalter die Arbeit für mich erledigen. Auch ohne die Schalter -X, -Y schlug mein Versuch fehl.
Was bedeutet der Fehler "Keine Anzeige angegeben"?
PS Das Seltsame ist, dass, wenn ich über PUTTY eine Verbindung zum Remote-Server herstelle und den Befehl 'firefox' wiederhole, dies funktioniert?!?! (Firefox wird auf dem lokalen Computer angezeigt)
PS Mein lokaler Computer ist Windows 7, daher wird Xming im Hintergrund ausgeführt, damit X11 angezeigt werden kann. Was den im oberen Teil beschriebenen Versuch betrifft, wurden die Befehle am Cygwin-Terminal eingegeben.
DISPLAY
Variable nicht festgelegt. also habe ich es mitexport DISPLAY=:0.0' and executed
xclock` eingerichtet und die xclock erschien. Aber als ich mich dann über ssh beim Remote-Server anmeldete und esxclock
erneut versuchte , stand dortError: Can't open display:
Antworten:
Stellen Sie sicher, dass Sie die DISPLAY-Variable in Ihrer Cygwin-Umgebung gesetzt haben:
Überprüfen Sie nach dem Verbinden mit SSH, ob diese Shell auch die richtige DISPLAY-Variable kennt:
quelle
echo $DISPLAY
. Aber immer noch ist die DISPLAY-Variable auf dem Remote-Server auf nichts gesetzt.Error: Can't open display: :0.0
export DISPLAY=localhost:0
Ich bin gerade auf dieses Problem beim Verbinden mit einem kopflosen RHEL7-Server gestoßen.
Sie müssen das Paket xorg-x11-xauth auf Ihrem Host installiert haben, damit die Variable DISPLAY festgelegt und ordnungsgemäß autorisiert wird.
Hoffe, ich habe jemandem etwas Zeit gespart.
quelle
ssh -X
einenecho $DISPLAY
zurückgegebenen URL + Port und einem Aufrufxterm &
öffnete sich ein Terminal in einem lokalen Fenster.Vielen Dank an @jensd, @unxnut für die Hilfe. Aufgrund Ihrer Kommentare konnte ich das Problem herausfinden.
Die Lösung benötigte zwei Schritte:
Bei meinen vorherigen Versuchen fehlen eine oder beide dieser beiden Bedingungen.
Für spätere Benutzer, die dies sehen, sind hier Beispiele, um Ihnen zu zeigen, was ich zu sagen versuche.
Fall 1
Auf meinem lokalen Computer ist keine DISPLAY-Variable festgelegt. Und dann werde ich mit -X-Schalter auf Remote-Server ssh und dann versuchen, auszuführen
xclock
.Wie Sie sehen,
Error: Can't open display:
wird am Remote-Server-Terminal ein Fehler angezeigt.case2
Dieses Mal werde ich auf dem lokalen Computer die Variable DISPLAY angeben. Aber wenn ich ssh'ing bin, werde ich den -X-Schalter nicht einschalten. Das Ergebnis wird ein Fehler sein:
Zu Beginn sehen Sie, dass ich die Variable DISPLAY richtig eingestellt habe. Aber auch so wird nach ssh'ing (ohne den Schalter -X) die xclock nicht ausgeführt.
* Ein anderes Ergebnis mit
setenv | grep DISPLAY
ist hier zu sehen (vergleiche mit case1). in case2 ist das Ergebnis einfach leer. Auf der anderen Seite ist das Ergebnis von case1 für diese BefehlszeileDISPLAY: undefined variable
.... Ich bin nicht sicher, wie dieser Unterschied verursacht wird, aber ich bekomme eine Vermutung, dass es damit zusammenhängt, ob Sie entweder Bedingung 1 oder 2 erfüllt haben .case3
Dieses Mal werde ich die DISPLAY-Variable auf dem lokalen Computer und auch ssh an den Remote-Server mit eingeschaltetem -X-Schalter korrekt angeben.
xclock
funktioniert mit dieser einstellung !! Hier ist ein Screenshot, der zeigt, dass ich nicht lüge. Die Uhr wird erfolgreich auf meinem lokalen Computer angezeigt.Überprüfen Sie
setenv | grep DISPLAY
in diesem Fall erneut das Ergebnis von . Es zeigt jetztDISPLAY=localhost:11.0
. Soweit ich weiß, hängt dies mit MIT-MAGIC-COOKIE in der .Xauthority-Datei zusammen, aber da ich nicht viel darüber weiß, gehe ich nicht weiter.Schlussfolgerung: In den drei oben genannten Fällen können wir bestätigen, dass für die ordnungsgemäße Anzeige von Remote-X-Windows sowohl die Variable 1. DISPLAY des lokalen Computers als auch der
-X
Schalter 2. ssh ordnungsgemäß festgelegt sein müssen. Natürlich sollte der Remote-Server X11forwarding zulassen.quelle