X-Tunneling-Problem vom Remote-Computer

X-Tunneling-Problem vom Remote-Computer

Ich versuche, ein X-Fenster zu tunneln. Wenn ja:

user@local: ssh -X user@remote  xclock

es funktioniert. Wenn ich mich jedoch zuerst am Computer anmelde und dann das Programm starte, schlägt es fehl.

user@local: ssh -X user@remote

user@remote: xclock
No protocol specified
Error: Can't open display: :0

Was schief gelaufen ist?

Bearbeiten

Ich habe die $DISPLAYVariable auf der Fernbedienung überprüft:

user@local: ssh -X user@remote "echo $DISPLAY"
:0.0

Das Einstellen auf den gleichen Wert auf der Remote-Seite nach dem Anmelden funktioniert nicht. Die Einstellung $DISPLAYwie :10.0vorgeschlagen funktioniert.

user@local: ssh -X user@remote
user@remote: DISPLAY=:10.0 xclock

Ich verstehe immer noch nicht, warum ich für die interaktive und die nicht interaktive Sitzung unterschiedliche $DISPLAY-Werte brauche.

Antwort1

Überprüfen Sie, ob die VariableANZEIGErichtig eingestellt sein auflokaler Host: 10.0. Wenn es das nicht ist,

export DISPLAY=localhost:10.0 

, dann versuche esxUhrwieder.

Aber warum muss „DISPLAY“ 10,0 statt 0,0 sein?

DerX-Server(oderX-Fenster, oderX11) ist genau das, ein Server, der darauf wartet, dass Apps sich mit ihm verbinden, um sie anzuzeigen. Das geschieht auf Ihrem PC, wo Apps sich über einen Socket in/tmp, normalerweise genannt/tmp/.X11-unix. Wie alle Server jedochX11kann von Remote-PCs aus kontaktiert werden und zeigt grafisch Anwendungen an, die auf Remote-PCs ausgeführt werden.

Diese Fähigkeit birgt jedoch viele Sicherheitsrisiken, sodass das Öffnen Ihres X11-Servers für Remoteanwendungen sehr schwierig ist (Sie müssen dieselbe Option mindestens dreimal in verschiedenen Konfigurationsdateien angeben).

Geben Sie nunssh, was dies stattdessen sicher macht: Es ist die-J/-XMöglichkeit vonsshdas alle Details zum Öffnen Ihres lokalen X11-Servers für die Remote-Anwendung sicher handhabt (auch durch Verschlüsselung des Datenverkehrs). Wenn Sie jedoch dieFernbedienungxclock lokal ausführen, müssen Sie der Remote-App mitteilen, dass der zu kontaktierende X11-Server nicht ihr eigener X11-Server ist, sondern einer auf einem entfernten PC (dem, von dem aus Sie diesshSitzung). SoxUhrmuss seine Ausgabe sendennichtan einen lokalen Socket in/tmpsondern an einen Netzwerkport (es ist127.0.0.1:6010, welchesshverkürzt sich gnädigerweise auflokaler Host: 10), aus denensshkümmert sich um die Rücksendung an Ihren lokalen PC, wo die Ausgabe schließlich grafisch angezeigt wird.

Wenn Sie die verschiedenen SSH-Verbindungen (vielleicht haben Sie mehrere) nicht trennen möchten durch10Einheiten, wie inlocalhost:10.0, localhost:20.0, …) sollten Sie die Aussage ändern

X11DisplayOffset 10

In/etc/ssh/sshd_configzu was auch immer Sie möchten (obwohl ich, um ehrlich zu sein, keinen Grund dafür sehe).

Mit dieser Anweisung werden die Remote-Anzeigen verfügbar.nichtam Hafen6000(welches sein würdelokaler Host: 0.0), aber auf Backbord6010Sie können dies selbst überprüfen:

$ ssh -Y vps
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Apr 17 02:47:42 2017 from 
root@vps:~# ss -lntp | grep 6010
LISTEN     0      0                 127.0.0.1:6010                     *:*      users:(("sshd",16172,8))
LISTEN     0      0                       ::1:6010                    :::*      users:(("sshd",16172,7))

verwandte Informationen