Remote-X11-Login leichtgemacht!
Sollte irgendjemand auch mal in der Lage sein, sich auf einem Remote-Rechner graphisch einloggen zu wollen, der allerdings nicht direkt per ssh zu erreichen ist, sondern nur über Umwegen (weil der Rechner hinter einem Router ist und kein Port zu ihm auf Port 22 durchgeroutet wird), dann empfehle ich folgendes simples Vorgehen:
Erstmal brauchen wir x11vnc auf dem Remote-Rechner und tightvnc auf dem Lokalen. Dann geht's los:
- Dafür sorgen, daß sich auf beiden Rechnern root per ssh einloggen darf (wir brauchen root-Rechte, um das X-Authfile auslesen zu können, s. u.)
- Eine Shell auf dem Remote-Rechner aufmachen
- root werden
-
Auth-File für die X-Anmeldung rausfinden:
ps wwwaux | grep auth | awk '/X/ {print $18}'
Wird benötigt, wenn keiner graphisch angemeldet ist. Und das war bei mir der Fall. -
Einen Reverse-ssh-Tunnel zum lokalen Rechner aufmachen (hier auf Port 15150):
ssh -R 15150:localhost:22 <lokaler Rechner>
- Auf dem lokalen Rechner eine neue Shell öffnen
- root werden
-
x11vnc über den Reverse-ssh-Tunnel starten:
ssh -t -L 5900:localhost:5900 -p 15150 localhost 'x11vnc -localhost -display :0 -auth <Authfile>'
-
Dann noch eine Shell auf dem lokalen Rechner öffnen und sich auf dem Remote-Rechner einloggen:
vncviewer -encodings "copyrect tight zrle hextile" localhost:0
… und das war’s schon :-D