In this example, I would like to introduce a way to enable a built-in Vino VNC server for Ubuntu distribution.
1. After logging in, open up Remote Desktop option (System -> Preferences -> Remote Desktop)
2. Check “Allow other users to view your desktop” and “Allow other users to control your desktop” – this is to let others, others would be me in my case, take control of this machine
3. Uncheck “Ask you for confirmation” – when VNC is connected, VNC server will ask for a confirmation to local user. In my case, this machine will not have a local logged user since it does not have a monitor
4. If possible, assign a password – Having a password should be better than not having one even though VNC still lacks encryption and strong authentication
At this point, VNC server is just enabled with some settings; however, Vino server does not start until a user logs in. This means that Vino server is not running at User Login screen – where a user types username and password. In my case, this was not feasible since the machine will not have a monitor (nor keyboard/mouse).
5. Edit /etc/gdm/Init/Default – this gets run when gdm starts (at Login Screen)
6. Add the following line right before exit 0 at the end of the file – Vino server runs when gdm starts up
Vino server starts up when gdm starts up; however, when username and password is typed in, gdm kill this vino-server meaning VNC connection will be terminated. To prevent this,
7. Edit /etc/gdm/gdm.conf with your favorite text editor
8. Find a commented option KillInitClients=true. Uncomment it and change it to false and save it. – this prevents vino-server from being killed right after login
Now, you should be able to connect to the machine using VNC