Get Adobe Flash player

Getunnelte VNC-Verbindung per SSH (putty) aufbauen

Mein häus­li­cher Linux-Server (Ubuntu LTS) führt ein beschau­li­ches Dasein: mysql, Apa­che, Samba, Mail­ser­ver — aber so gut wie keine Nut­zer. Ver­wal­tet habe ich ihn bis­her über eine SSH oder eben direkt an der Kon­sole. Schon lange hatte ich vor per VNC den XFCE4-Desktop auch aus der Ferne bedien­bar zu machen. Heute machte ich mich mal an die Arbeit und nach­dem es nun halb­wegs läuft doku­men­tiere ich die Ergeb­nisse — nütz­lich für mich selbst — und viel­leicht auch für andere.

Zunächst stellte sich die Frage wel­chen VNC-Server ich ver­wen­den sollte. Mit klei­nen Umwe­gen von vino über TightVNC (machte lei­der Pro­bleme beim Kopie­ren der Zwi­schen­ab­lage mei­nes XFCE4-Desktop) und RealVNC (das ich auf­grund der Beschränkt­heit der freien Ver­sion ver­wor­fen habe) lan­dete ich schließ­lich bei x11vnc.

Mit x11vnc kann man pro­blem­los einen vor­han­de­nen Desk­top „über­neh­men“, bzw. bes­ser gesagt, sich auf­schal­ten und syn­chron zum loka­len Desk­top an bei­den Stel­len bedienen.

Vor der Instal­la­tion sollte man ggf. vino und/oder andere VNC-Server ent­fer­nen. Die Instal­la­tion von x11vnc per apti­tude oder Syn­ap­tic ver­läuft völ­lig problemlos.

Nun gibt es zwei Mög­lich­kei­ten: Ent­we­der auf dem VNC-Server-System ist bereits ein X11-Nutzer ange­mel­det und es läuft bereits ein X11 oder eben nicht. Wenn ja, kann man ein­fach x11vnc star­ten und anschlie­ßend vom Cli­ent aus dar­auf zugrei­fen. Wenn kein X11 läuft — son­dern statt­des­sen ein Anmel­de­fens­ter wie gdm, kdm oder (in mei­nem Fall) xdm, dann kann man sich die­ses eben­falls auf den Client-Bildschirm holen, indem man den „raw dis­play mana­ger MIT-MAGIC-COOKIE“ holt. In mei­nem Fall war dies in /var/lib/xdm/authdir/authfiles/XXXXX anstelle der XXXXX natür­lich den Namen der dor­ti­gen Datei. Übri­gens befin­det sich der Hin­weis hierzu sehr deut­lich auf der Aus­gabe, die man nach dem Start von x11vnc auf dem Bild­schirm bekommt.

Start des VNC-Servers:

x11vnc -ncache 10 -auth /var/lib/xdm/authdir/authfiles/XXXXXXX -usepw

Danach ist der Ser­ver für den VNC-Client erreich­bar — falls nicht irgendwo dazwi­schen ein Rou­ter oder eine Fire­wall hängt, wel­che den Port 5900 blockiert.

SSH-getunnelte Ver­bin­dung

Wie kann man nun die Ver­bin­dung (Pass­wort und Ver­bin­dungs­da­ten) kom­plett ver­schlüs­seln, um auch gefahr­los aus dem Inter­net eine Ver­bin­dung auf­zu­bauen? Eine ver­ständ­li­che Anlei­tung fand ich beim Autor von x11vnc Karl Runge.

SSH-Tunnel-Einstellung in putty

Das ist alles, mehr braucht man bei putty-nicht ein­stel­len um den loka­len VNC-Client auf den Ser­ver umzuleiten.

Im Prin­zip geht man so vor:
Star­ten einer ssh-Verbindung (unter Win­dows mit putty) mit einem Tun­nel des loka­len Ports 5900 auf Port 5900 des VNC-Servers und anschlie­ßen­der Start eines VNC-Clients mit Ver­bin­dung zu local­host der dann über den getun­nel­ten Port 5900 auf den eigent­li­chen VNC-Server gelei­tet wird.

Als Cli­ent nutze ich unter Win­dows die USB-Version von TightVNC. So hat man sei­nen VNC-Client auf dem USB-Stick immer zusam­men mit putty dabei und kann von über­all eine sichere Ver­bin­dung zum Desk­top aufbauen.

Danach erfolgt der Start des VNC-Servers in der SSH — wie oben beschrieben.

Wie geht es wei­ter — was mich noch inter­es­sie­ren würde

Wie kann ich anstelle mich auf eine bereits lau­fen­den X11 ein­zu­hän­gen, eine neue starten?

Kommentieren

Kategorien
Metropolregion N
Suche auf regio­na­len Web­sei­ten im Raum Nürnberg.
Loading