x11vnc Installation (Ubuntu 11.10 – Oneiric Ocelot) – per VNC mit ssh (sicher und verschlüsselt) auf Ubuntu Desktop zugreifen

x11vnc Installation (Ubuntu 11.10 – Oneiric Ocelot) – per VNC mit ssh (sicher und verschlüsselt) auf Ubuntu Desktop zugreifen.

WICHTIG ! Von Version 11.04 auf 11.10 gab es gravierende Veränderungen. Es ist eine sehr veränderte Installation notwendig !

Sie möchten von Windows oder Linux auf Ubuntu zugreifen wie auf Windows per Remote Desktop (RDP) und das ganze sicher und verschlüsselt. Dann sind sie hier richtig ! Das eingebaute „Entfernter Desktop“ von Ubuntu ist leider unverschlüsselt und unsicher !

Diese 2 Pakete bitte über den Terminal installieren: (Synaptic gibt es seit 11.10 nicht mehr und im Ubuntu Software Center findet man den openssh-server nicht !)

Terminal öffnen und mit diesen Befehlen x11vnc und openssh-server installieren:

sudo apt-get install x11vnc
sudo apt-get install openssh-server

Im Moment werden diese Versionen installiert:

x11vnc (0.9.12-1build1)
openssh-server (1:5.8p1-7ubuntu1)

Dann geht’s zur Konfiguration:

Wir legen das Passwort für x11vnc an:

– sudo x11vnc -storepasswd yourpasswordhere /etc/x11vnc.pass

“yourpasswordhere” bitte mit dem gewünschten ersetzen.

Seit 11.10 benutzt Ubuntu den neuen lightdm (light display manager) anstatt des GDM (gnome display manager). Deshalb ist dieser Teil ganz neu. Jetzt konfigurieren wir den lightdm damit x11vnc nach dem booten bzw. vor dem Login Screen direkt zur Verfügung steht. Dazu müssen wir die Datei x11vnc.conf erstellen:

sudo gedit /etc/init/x11vnc.conf

Der Datei bitte diesen Inhalt hinzufügen:

start on login-session-start
script
x11vnc -rfbauth /etc/x11vnc.pass -rfbport 5900 -display :0 -auth /var/run/lightdm/root/:0 -forever -bg -o /var/log/x11vnc.log -noxrecord -noxfixes -noxdamage -nomodtweak
end script

(Hinweis: Es gibt in vielen Blogs und im Ubuntu Forum verschiedene Anleitungen. Diese haben aber entweder Fehler oder es bleibt etwas unberücksichtigt. Mit dieser Anleitung stellen wir eine sichere Verbindung mit Passwortabfrage sicher. Bei den meisten fehlt das SSH oder die Passwortabfrage. Auch funktioniert mit dieser Konfiguration das Nummernfeld der Tastatur. Das geht mit den anderen meistens auch nicht !)

Dann Neustarten und man hat VNC Zugang vor dem Login Screen zum echten Desktop.

Zugang dann z.B. von einem Windows PC (verschlüsselt und sicher mit SSH) mit Putty+Tightvnc – Hier die Anleitung: Putty+VNC

Wenn man von einem Ubuntu System auf ein anderes Ubuntu System zugreifen will muss man folgendes im Terminal eingeben:

vncviewer -via user@host localhost:0

user steht für den Benutzernamen, host für die IP-Adresse oder den Hostname des Servers !

Bei einer internen Verbindung im eigenen Netzwerk:
(z.B.: vncviewer -via maria@192.168.2.11 localhost:0)

Wenn man über das Internet auf das System zugreifen will, muss man noch port 22 (SSH) am Router freigeben und auf die interne IP Adresse des Ubuntu System routen !
(z.B.: vncviewer -via maria@180.11.x.x localhost:0)

-via ist dabei der Befehl einen SSH Tunnel aufzubauen !

Alle Angaben ohne Gewähr !
+++++
English Version:

As there is no Synaptic anymore and the Ubuntu Software Center won’t find openssh-server we have to install it via Terminal:

Start the Terminal and install this:

sudo apt-get install x11vnc
sudo apt-get install openssh-server

At the moment this versions will be installed:

x11vnc (0.9.12-1build1)
openssh-server (1:5.8p1-7ubuntu1)

Let’s Config and set the password:

– sudo x11vnc -storepasswd yourpasswordhere /etc/x11vnc.pass

replace “yourpasswordhere” with your password

From 11.10 Ubuntu uses the new lightdm (light display manager) instead of the GDM (gnome display manager). This is new ! Now we config lightdm for x11vnc. So x11vnc will be available before the Login Screen and after Reboot

We have to create a file called x11vnc.conf:

sudo gedit /etc/init/x11vnc.conf

Please add these lines to the file:

start on login-session-start
script
x11vnc -rfbauth /etc/x11vnc.pass -rfbport 5900 -display :0 -auth /var/run/lightdm/root/:0 -forever -bg -o /var/log/x11vnc.log -noxrecord -noxfixes -noxdamage -nomodtweak
end script

(Info: There are a few manuals in blogs and forums. But most of the have mistakes or something important is missing. This manual gives you probably all you need. Secure connection via SSH, needs password for x11vnc and the numeric pad from the keyboard is working ! This won’t work with most of them !)

Reboot and you have x11vnc before login.

Connect from Windows PC (secure via SSH) with Putty+Tightvnc – find a german manual here: Putty+VNC

Connect from Ubuntu client to Ubuntu Host system. Start Terminal and type:

vncviewer -via user@host localhost:0

user is for the Username, host is the IP Address from the Server !

Connect in the local network:
(ex.: vncviewer -via maria@192.168.2.11 localhost:0)

Connect via Internet, open port 22 (SSH) at your Router and route to local IP from Ubuntu Host System !
(ex.: vncviewer -via maria@180.11.x.x localhost:0)

-via is the command for enabling the SSH Tunnel !

Alle Angaben ohne Gewähr !

(Suchthemen: x11vnc, Problem mit Shift Taste, nummerischer Teil, Nummern Block der Tastatur geht nicht – Problems with Shift key, numeric pad on keyboard doesn’t work, not working)

22 Comments

  1. manu says:

    Thank you so much for this tuto !!

    Note that you don’t absolutely need to reboot to have x11vnc before login after you create the /etc/init/x11vnc.conf file, just restart lightdm :

    sudo service lightdm restart

  2. wuschel says:

    Sehr gutes Tut! Nachdem ich schon auf div. Sites war, hat dieses Tut hier auf Anhieb geklappt 🙂 Grüße wuschel

  3. Emilio says:

    Thanks, thanks, thanks!

    Just one comment. In order to work fine with Lubuntu 12.04 and Spanish keyboards, I had to remove the option -nomodtweak.

    Therefore, my /etc/init/x11vnc.conf is:

    start on login-session-start
    script
    x11vnc -rfbauth /etc/x11vnc.pass -rfbport 5900 -display :0 -auth /var/run/lightdm/root/:0 -forever -bg -o /var/log/x11vnc.log -noxrecord -noxfixes -noxdamage
    end script

  4. Dusan says:

    Hi, I always got „caught XIO error: “ after pressed „enter“ or clicked on „Login“ button inside login screen and than is remote-client crashed.
    But this error I don’t got, if I choose „Guest account“ inside login-screen, than I am able work with remote pc.

    x11nvc.conf:
    script
    x11vnc -ncache 10 -rfbauth /etc/x11vnc.pass -rfbport 5900 -display :0 -auth /var/run/lightdm/root/:0 -forever -bg -o /var/log/x11vnc.log -noxrecord -noxfixes -noxdamage
    end script

    Error log:
    01/06/2012 16:12:05 Using tight encoding for client 193.*.*.*
    01/06/2012 16:12:05 copy_tiles: allocating first_line at size 54
    01/06/2012 16:12:06 client 1 network rate 26.9 KB/sec (24419.0 eff KB/sec)
    01/06/2012 16:12:06 client 1 latency: 122.2 ms
    01/06/2012 16:12:06 dt1: 0.3044, dt2: 0.6236 dt3: 0.1222 bytes: 23280
    01/06/2012 16:12:06 link_rate: LR_BROADBAND – 122 ms, 26 KB/s
    01/06/2012 16:12:11 client_set_net: 193.33.22.109 5.0064
    01/06/2012 16:12:11 set_ncache_xrootpmap: trying root background
    01/06/2012 16:12:11 snapshotting background…
    01/06/2012 16:12:11 done.
    caught XIO error:
    01/06/2012 16:12:15 deleted 53 tile_row polling images.

    I have xubuntu 12.04, kernel (3.2.0-24) i386

    Some a idea?

  5. Dusan says:

    Problem was with ~/.XAuth* direcotries. I deteled them and VNC working.

  6. Vladimir says:

    Thank you man, you rule! I’m no newbie (been Linuxing since 1996), but i just couldn’t make this work on Ubuntu 12.

    T H A N K Y O U !

  7. admin says:

    Nice to hear, thanx 🙂

  8. Horgi says:

    thank you so much for this howto.
    that’s just a cloud of fresh air for beginners like me.
    / and for those who differs gnome dm from that new lightdm, which is more tweakfriendly, as it appears.
    greetings from Russia!

  9. Stephan says:

    Super Tutorial!
    Worked for me.

    Thanks.

  10. Jérôme says:

    Hi,
    It seems this only works with systems using upstart instead of sysvinit. Am I right ?
    On my sysvinit system (debian unstable dist-upgraded from 6.0) the /etc/init directory is not used.
    I worked around this by creating a script called by display-setup-script= in lightdm.conf. It launches x11vnc and numlockx.

    Here it is :
    #!/bin/sh
    #/root/scripts/lightdm_start
    # Start x11vnc and numlockx.
    # Called by display-setup-script= in /etc/lightdm/lightdm.conf.

    usr/bin/x11vnc -ncache 10 -gui tray -rfbauth /etc/x11vnc/passwd -rfbport 5900 -display :0 -auth /var/run/lightdm/root/:0 -forever -bg -o /var/log/x11vnc.log -ssl -s
    sldir /root/.vnc

    /usr/bin/numlockx on

    #EOF

    Note : I use -ssldir because otherwise x11vnc creates the .vnc directory at the root of my file system. It seems that at this point it doesn’t understand ~/

    Anyway thanx for this tutorial.

  11. Jo says:

    Danke Danke !

    Nachdem ich viel Zeit mit anderen Tutorials verbracht habe,
    hat diese Anleitung sofort funktioniert.
    ( Client Debian 7 / Server Ubuntu 12.04 )

  12. Dev says:

    Hi,
    ich bekomme meine Tastatur nicht richtig hin. Immer wenn ich „#“ drücke bekomme ich eine „3“.

    Ich hab da was mit „~/.vnc/startup“ gelesen aber kann diese Datei nicht finden. VNC mit SSH tut aber sonst super.

    Gibt es eigentlich eine Möglichkeit, den Login (SSH & VNC) zu automatisieren (Autologin)?

    Gruß
    Dev

    PS: Super Anleitung!

  13. admin says:

    Hallo !

    Das Problem betrifft ja die Hochstelltaste. Das hatte ich glaube ich auch schonmal und dann eine Lösung gefunden. Schau Dir doch mal die alten konfigs hier auf der Seite an.
    Bei normaler Installation und dieser Konfig sollte alles funktionieren. Ist aber bei Abweichungen alles etwas tricky 😉

    Ich bin schon seit 2007 dran und bei jeder neuen Ubuntu Version gibt es neue Hürden 😉
    Gruß

  14. Dev says:

    Alloha Admin,

    scheint bei mir nichts mit der Hochstelltaste zu sein. Hab es auf deiner Seite gefunden und festgestellt, dass ich die dafür vorgeschlagene Lösung schon so umgesetzt habe.
    Hast du eine Idee, warum bei mir diese Datei ( “~/.vnc/startup”) fehlt?
    Ist sie bei dir vorhanden, wenn du diese Anleitung umsetzt?
    Gruß
    Dev

  15. Dev says:

    Nachtrag:

    Wenn ich „automatisch Anmelden“ ausschalte gehts!

  16. sixgeek says:

    Ich möchte beide Rechner (kubuntu 12.04 + kubuntu 12.10) miteinander via VNC Verbinden.

    Vom 12.04 Rechner zum 12.10 geht es wie beschrieben.
    Vom 12.10 Rechner zum 12.04 erhalte ich folgende Fehlermeldung:

    # xtightvncviewer 192.168.1.11
    xtightvncviewer: ConnectToTcpAddr: connect: Connection refused
    Unable to connect to VNC server

    Muss ich am Rechner 12.04 einen anderen Port benutzen? Dort habe ich bereits in /etc/init/x11vnc.conf den Port auf 5901 geändert (-rfbport 5901). Muss der Port überhaupt geändert werden?

    Vielen Dank im Voraus.
    Gruß

  17. admin says:

    Hallo

    Leider gibt es bei Ubuntu immer wieder größere Veränderungen. Ich habe es bisher immer damit hinbekommen:
    +++++
    Wenn man von einem Ubuntu System auf ein anderes Ubuntu System zugreifen will muss man folgendes im Terminal eingeben:

    vncviewer -via user@host localhost:0

    user steht für den Benutzernamen, host für die IP-Adresse oder den Hostname des Servers !

    Bei einer internen Verbindung im eigenen Netzwerk:
    (z.B.: vncviewer -via maria@192.168.2.11 localhost:0)

    Wenn man über das Internet auf das System zugreifen will, muss man noch port 22 (SSH) am Router freigeben und auf die interne IP Adresse des Ubuntu System routen !
    (z.B.: vncviewer -via maria@180.11.x.x localhost:0)

    -via ist dabei der Befehl einen SSH Tunnel aufzubauen !
    +++++
    Aber jetzt nicht zwischen 12.01 und 12.10 ausprobiert.

    Probierst Du es genau so ?

  18. sixgeek says:

    Da ich es sowieso vorgehabt habe, ist auf dem Rechner wo noch 12.04 drauf war 12.10 frisch installiert. Diesen Rechner bezeichne ich ab jetzt htpc.

    Wenn ich deinem Ratschlag folge und den Befehl eingebe (laptop -> htpc):
    vncviewer tuxbook@192.168.2.11 localhost:0

    erhalte ich folgende Ausgabe:
    ssh: connect to host 192.168.2.11 port 22: Connection timed out
    vncviewer: Tunneling command failed: /usr/bin/ssh -f -L 5599:localhost:5900 tuxbook@192.168.2.11 sleep 20.

    Allerdings bring ein einfaches
    vncviewer 192.168.1.11

    auch nur wieder ein
    vncviewer: ConnectToTcpAddr: connect: Connection refused
    Unable to connect to VNC server

    Ich habe hier zwei Rechner laptop + htpc und ein Android phone.
    Die Konnektivität untereinander sie wie folgt aus.

    laptop -> htpc NEIN # vncviewer 192.168.1.11:5900
    laptop -> Android JA # vncviewer 192.168.1.20:5901

    htpc -> laptop JA # vncviewer 192.168.1.103:5900
    htpc -> Android JA # vncviewer 192.168.1.20:5901

    Android -> htpc NEIN androidVNC app adress:ports wie oben
    Android -> laptop JA androidVNC app adress:ports wie oben

    Nach meinem Verständnis stimmt etwas beim htpc nicht. Obwohl ich in beiden Fällen die Rechner vor einem kurzen Zeitraum frisch installiert habe.

    Kann etwas an meiner Router firewall nicht richtig eingestellt sein? Wobei daran nichts geändert wurde.

    Vielen Dank im Voraus.

  19. Felix says:

    Super Tutorial, hat auf Anhieb geklappt!
    Das einzige was ich vermisse, ist file transfer von und zu dem server, da steht no supported (zumindest mei meinem realvnc client…).
    Müsste man wohl separate noch aktivieren?….

  20. admin says:

    Hi !

    Mit dem VNC gibts wohl keinen File Transfer. Das habe ich immer per ftp oder sftp separat gemacht. Es ging mir damals nur darum eine sichere Verbindung zum Desktop zu erhalten.
    Wenn der File Transfer auch sicher sein soll probiere mal sftp, habe ich auch eine Anleitung hier. Das ist aber alles schon etwas komplizierter und läuft wohl auch nicht auf jeder Version.

    Eventuell gibt es da auch schon bessere Lösungen, habe da lang nichts mehr neues gemacht.
    Viel Glück !

  21. Gorz says:

    Zwei Jahre nach Veröffentlichung … gerade ausprobiert, funktioniert immer noch prima.
    Vielen Dank, war genau das gesuchte.

  22. Prinz says:

    Läuft super mit Ubuntu 14.04 LTS!

    Vielen Dank lieber Admin 😀

Schreibe einen Kommentar