Enable remote VNC from the commandline?

I have one computer running Ubuntu 10.04, and is running Vino, the default VNC server.

I have a second Windows box which is running a VNC client, but does not have any X11 capabilities. I am ssh'd into the Ubuntu host from the Windows host, but I forgot to enable VNC access on the Ubuntu host.

On the Ubuntu host, is there a way for me to enable VNC connections from the Ubuntu commandline?

Update:

As @koanhead says below, there is no man page for vino (e.g. man -k vino and info vino return nothing), and vino --help doesn't show any help).


Solution 1:

I also wanted to enable vino with the command line without going in vino-preferences.

When I started /usr/lib/vino/vino-server, it says that I didn't have desktop sharing service enabled.

With Unity gconftool isn't usable anymore. We have to do it via gsettings.

So, first, enable vino :

gsettings set org.gnome.Vino prompt-enabled true

Then start vino :

/usr/lib/vino/vino-server

Now you can access remotely to your computer.

If you want to see all configs available for Vino :

gsettings list-keys org.gnome.Vino

Solution 2:

Short Answer:

gconftool-2 --set --type=bool /desktop/gnome/remote_access/enabled true

as the accepted answer mentions, if vino isn't started on the remote machine, use

/usr/lib/vino/vino-server

Long Answer and more info:

A subset of the settings for the current built-in remote access server (vino) can be seen, as mentioned, from vino-preferences. A complete list of gconf flags can be seen with the gconf-editor command, listed under /desktop/gnome/remote_access . You can see also the other remote_access keys with this command (or a variation on it):

gconftool-2 -a /desktop/gnome/remote_access

(For whatever reason, -R will also work.)

You can also get the schema key documentation via the --long-docs arg.

E.g., for the alternative_port key :

gconftool-2 --long-docs /desktop/gnome/remote_access/alternative_port

       The port which the server will listen to if the
       'use_alternative_port' key is set to true.
       Valid values are in the range from 5000 to 50000.

So, for example, here's how to change default port via command line:

gconftool-2 --set --type=bool /desktop/gnome/remote_access/use_alternative_port true
gconftool-2 --set --type=int /desktop/gnome/remote_access/alternative_port 5999

gconftool will give you the keys under a given directory. Here is the 'remote_access' section:

gconftool-2 -a /desktop/gnome/remote_access
 use_upnp = false
 vnc_password = 
 authentication_methods = [vnc]
 network_interface = 
 require_encryption = false
 disable_background = false
 enabled = true
 use_alternative_port = false
 mailto = 
 disable_xdamage = false
 lock_screen_on_disconnect = false
 icon_visibility = always
 view_only = false
 prompt_enabled = true
 alternative_port = 5900

Here is how to list all the schema docs under /desk/gnome/remote/access (via command-line /bin/bash):

for key in ` gconftool-2 -a /desktop/gnome/remote_access | awk '{print $1}'  ` ; do echo $key ; gconftool-2 --long-docs /desktop/gnome/remote_access/$key ; done

Solution 3:

Just running

/usr/lib/vino/vino-server

should do the job.

Once you have access to your server, I would recommend that you add it to Autostarted Apps so it is always started.

You'll probably like change some settings with :

vino-preferences

be very careful when you run vino-preference on a remote machine, if you uncheck "Allow other users to control your desktop", you won't be able to check it back.

or to edit :

~/.gconf/desktop/gnome/remote_access/%gconf.xml

Here a sample file :

<?xml version="1.0"?>
<gconf>
    <entry name="vnc_password" mtime="1289267042" type="string">
        <stringvalue>cXdlcnR5</stringvalue>
    </entry>
    <entry name="view_only" mtime="1289262982" type="bool" value="false"/>
    <entry name="prompt_enabled" mtime="1254965869" type="bool" value="false"/>
    <entry name="authentication_methods" mtime="1289267034" type="list" ltype="string">
        <li type="string">
            <stringvalue>vnc</stringvalue>
        </li>
    </entry>
    <entry name="enabled" mtime="1289263574" type="bool" value="true"/>
</gconf>

Be careful, the password is base64 encoded. For this file, the password is qwerty. I see on some forum that people have change it successfully, but I had issue with it.

Here an online base64 encoder :

http://www.motobit.com/util/base64-decoder-encoder.asp

Solution 4:

On Ubuntu 14.04, I found the following variation worked for me:

export DISPLAY=:0
gsettings set org.gnome.Vino enabled true
gsettings set org.gnome.Vino prompt-enabled false
gsettings set org.gnome.Vino require-encryption false
/usr/lib/vino/vino-server

If this doesn't work, your X session might be running on something other than :0, so a quick ps aux | grep X should show a :1 or :2

Solution 5:

Why, for the love of all that is good in this hard world, is there no man entry for vino or vino-server or for any of the commands listed in dpkg -L vino's output? For that matter, why should any package at all be installed on an Ubuntu system, ever, which omits a man page at least for the relevant commands? Ok, rant over. The best answer I've found so far is here: http://ubuntuforums.org/archive/index.php/t-266981.html

I really hope this helps, and I hope that in future the Ubuntu community documents all these orphaned commands. "Ease of use" does not mean abandoning the command line, and it certainly does not mean abandoning easily accessible documentation. </grumble>