Apple’s brand new Leopard version of OS X includes handy support for connecting to shared remote screens right from the Finder. The intention was to connect to other Macs, but with a bit of tweaking you can also connect to VNC servers running on Linux machines with the same ease.
In the new “Shared” section of the Finder’s sidebar, the listed servers are actually those that advertise interesting services on the local network via Bonjour (a.k.a. ZeroConf or mDNS).
My home Linux server (running Debian unstable) was advertising its AFP network file volumes using ZeroConf thanks to a bit of prior Avahi configuration, so it showed up automatically in my Leopard Finder.
I run a VNC server on that Linux machine, which happens to listen on port 5901; it’s started with the following command line:
(The port number is 5900 plus the display number – here 1.)
For the “Share Screen…” button to magically appear, I needed to tell
Avahi on the Linux machine advertise the VNC server, by adding the
/etc/avahi/services/rfb.service, with contents as follows:
1 2 3 4 5 6 7 8
Avahi automatically detected the new service descriptor, and the machine (called “inspiration”) showed up in my Finder instantly:
(Aside: my guess is that the “Connection Failed” text is because the Linux machine, unlike Leopard Macs, has no Guest account – Leopard appears to try connecting to file servers as Guest automatically.)
Trying the magic button
Clicking on “Share Screen…” now brings up the swanky new Screen Sharing application, which first prompts me to enter the vncserver password, and then displays the following warning:
(As far as I know, no Linux VNC server software supports the keystroke encryption that Screen Sharing would like to use. Changing the preference mentioned in the dialog also didn’t help, even though the Linux machine runs an ssh server and advertises it via Bonjour.)
Clicking “Connect” brings up my Linux desktop, running KDE:
This is all very convenient!
Connecting to non-VNC Linux desktops
My Linux server is headless, and doesn’t run a regular X server connected to a monitor via a video card. If your Linux server does not run vncserver, and instead is plugged into a monitor, you should still be able to connect; KDE has built-in support for screen sharing, so it should be a simple matter to advertise the shared screen as described above. (Port numbers may differ in that case.)