webentwicklung-frage-antwort-db.com.de

ssh -X "Xt-Fehler: Anzeige kann nicht geöffnet werden:: 0.0"

Ich versuche, xterm auf meinem Remote-Server (Ubuntu Server 10.04) mit ssh zu öffnen:

ssh -X [email protected] xterm

der zurückgegebene Fehler lautet jedoch:

xterm Xt error: Can't open display: :0.0`

Ich habe gegoogelt und alles ausprobiert, was ich gefunden habe. Dieser Fehler wird immer noch angezeigt. Die DISPLAY-Variable sollte automatisch gesetzt werden, oder?

Teil von sshd_config:

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes

Irgendein Rat?

8
Fabian

Wenn ssh die Verbindung herstellen kann, wird DISPLAY auf den richtigen Wert gesetzt. Da Sie X11DisplayOffset auf 10 gesetzt haben (der Standardwert), verwendet ssh die erste verfügbare Anzeige ab 10. Wenn Sie einen Wert sehen, der niedriger als 10¹ ist, stört etwas die normale X11-Weiterleitung, die von eingerichtet wurde ssh, zumindest durch Überschreiben von DISPLAY. Der Wert :0 (oder :0.0, der Teil nach dem Punkt ist irrelevant) gibt die erste Anzeige an, die auf dem Computer gestartet wurde, in typischen Fällen ist dies die aktive Sitzung (oder die grafische Anmeldeaufforderung) die Konsole der Maschine.

Die wahrscheinlichste Erklärung für das beobachtete Verhalten ist, dass eine Ihrer Shell-Konfigurationsdateien DISPLAY festlegt. Der offensichtlichste Täter ist ~/.bashrc (der aufgrund einer Bash-Eigenart ausgeführt wird, wenn das übergeordnete Element von bash rshd oder sshd ist, auch wenn die Shell nicht interaktiv ist). Eine andere Datei, die Umgebungsvariablen definiert, ist /etc/environment. In diesem Fall liegt die Lösung auf der Hand: Setzen Sie dort nicht DISPLAY. (In sehr wenigen Fällen müssen Sie DISPLAY manuell einstellen.)

Es gibt andere exotische Erklärungen. Dies kann passieren, wenn Sie Ihre Login-Shell in screen geändert haben (theoretisch eine nette Idee, aber nicht praktisch) und eine Shell-Initialisierungsdatei haben, die DISPLAY gewaltsam in den Bildschirm einfügt (nicht so gut) Idee). Dies kann auch passieren, wenn Sie den Server so konfiguriert haben, dass er vom Client gesendete Umgebungsvariablen akzeptiert (Anweisung AcceptEnv in sshd_config), der Client DISPLAY sendet und die X-Verbindung nicht hergestellt werden kann etabliert. Oder es kann vorkommen, dass Sie eine Umgebungsvariable auf dem Server über die Anweisung command in ~/.ssh/authorized_keys festlegen. Oder xterm könnte ein Skript sein.

¹ Oder was auch immer der Wert von X11DisplayOffset in der Serverkonfiguration ist, er wird kaum vom Standardwert geändert.

7
Gilles

Ihr Befehl sollte funktionieren, oder zumindest für mich. Versuchen Sie dies stattdessen:

ssh -Y [email protected] xterm

Bearbeiten (1):

Versuche dies:

ssh -X [email protected] env

Das sollte die ganze Umgebung zeigen. Es sollten verschiedene SSH-Dinge drin sein und auch DISPLAY. DISPLAY sollte 10.0 sein.

Sie können dies auch versuchen:

ssh -X [email protected] DISPLAY=10.0 xterm
3
ed.

Neben X11Forwarding yes musste ich noch hinzufügen

X11UseLocalhost no

in /etc/ssh/sshd_config

wie beschrieben hier .

2
user2400538

Die Zugriffskontrolle von X ist wahrscheinlich im Weg.

Führen Sie xhost + (aus Paket x11-xserver-utils) aus, um die Zugriffssteuerung vollständig zu deaktivieren.

2
Geert

Ich fand, dass xauth nicht installiert worden war.

1
allen

Stellen Sie außerdem sicher, dass X11 auf der Client-Seite installiert ist. Ich bekam dieses Problem, als ich meinen Mac auf OS X Mountain Lion aufrüstete. Mountain Lion entfernt X11, sodass Sie es erneut über das Open-Source-Projekt X Quartz installieren müssen. http://xquartz.macosforge.org/landing/

0
Paul Maunders