Monday, February 16, 2015

Screen sharing between Mac OS X 10.10 Yosemite and Ubuntu Gnome

There are actually a number of posts and video that rank highly in google search results for doing this, but none of them explicitly state all the requirement to make this work. Since I just spent the effort to configure it like I want it, I'll dump it here (mainly for my own benefit since I'll forget what I did).

This is using the screen sharing application in Apple CoreServices. If you are on an unsecure network, don't do this because it requires disabling encryption.

Client: OS X 10.10.2
Sever: Ubuntu Gnome 14.04 LTS

1. Install dconf-tools:
sudo apt-get install dconf-tools from the command line
or use that ugly Ubuntu Software Center to search for and install "dconf editor" (why that thing has a white background with lime green text is a mystery to me)

2. Open dconf editor and navigate to org > gnome > desktop > remote-access. Here you will make TWO changes. Most all the posts I saw only mentioned one change.

a. deselect "require-encryption"
b. change authentication-methods from 'none' to 'vnc'.



Do not select "set to default"

While a VNC client can connect with no authentication, mac OS expects a password, and attempts to connect will just hang if you don't set this.

3. from a terminal run vino-preferences and select "Require the user to enter this password:" and type in a password of your choosing.


OPTIONAL

vino broadcasts a hard-coded user@host name through zeroconf (avahi), meaning that in the mac finder sidebar, you get a separate entry for each service broadcast from the Ubuntu box. This is a rather annoying and old "feature". There's a nice workaround here that disables automatic broadcasting. You then create separate entries for each service using only the host name. This allows all of these to be grouped together under one "computer" icon in the finder sidebar.

sudo nano /etc/avahi/avahi-daemon.conf

find the line:

#disable-user-service-publishing=no

and change it to:

disable-user-service-publishing=yes

while remembering to uncomment the line (which I forgot to do the first time).

Next, create a vnc.service file (don't misspell the file name like I did and wonder why it doesn't work).

sudo nano /etc/avahi/services/vnc.service

and paste in the following as is:

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_rfb._tcp</type>
<port>5900</port>
</service>
</service-group>

Restart avahi:

sudo /etc/init.d/avahi-daemon restart

No comments:

Post a Comment