Stellen Sie sich eine Situation vor, in der ich mich über SSH von Maschine A zu Maschine B anmelde, auf Maschine A eine X-Sitzung habe und auf B ein X-Programm ausführen möchte.
ssh -X B
macht dies transparent. Aber was ist, wenn die Serverkonfiguration fehlt X11Forwarding yes
, ich keine Root-Berechtigungen auf dem Server habe und der Serveradministrator gleichgültig ist?
Es ist offensichtlich möglich, die X11-Verbindung weiterzuleiten, da ich alles, was ich will, über den SSH-Kanal übertragen kann. Wenn der lokale X-Server TCP-Verbindungen zulässt, ist dies in der Tat so einfach wie ssh -R 6010:localhost:6000
(Anpassung an die Anzeigenummern). Was ist mit dem häufigen Fall, dass der lokale X-Server nur Socket-Verbindungen zulässt? Wie mache ich eine X-Weiterleitung bequem und sicher mit einem Minimum an Installationsanforderungen (insbesondere bei B)?
quelle
.ssh/config
Clientseite und das auf Ihre.profile
Serverseite und führen Sie es dann einfach aus.ssh B
"/tmp/.X11-unix/X0
ist ein Unix-Domain-Socket kein FIFO, daher endet jeder Umleitungsversuch mitENXIO: No such device
.Starten Sie einen zusätzlichen X-Server mit Xephyr. Dies dient der Sicherheit - es verhindert, dass das Remote-System Ihr System gefährdet.
Verwenden Sie SSH, um einen Remote-Socket an den Xephyr-Socket weiterzuleiten. SSH unterstützt auch die Weiterleitung von Unix-Sockets.
Stellen Sie die Umgebungsvariablen auf dem Remote-Server richtig ein.
quelle