FreeNX is an open source implementation of the NoMachine NX protocol for remote desktop access. It's fast and secure. A great alternative to VNC.
Installing on Ubuntu
Installing is very straight forward, just add the following repositiroes to /etc/apt/sources.list:
deb http://free.linux.hp.com/~brett/seveas/freenx feisty-seveas freenx deb-src http://free.linux.hp.com/~brett/seveas/freenx feisty-seveas freenx
Add the gpg key for the maintainer:
wget http://free.linux.hp.com/~brett/seveas/freenx/seveas.gpg -O- | sudo apt-key add -
Update and install:
sudo apt-get update sudo apt-get install freenx
Setting up for a secure SSH server
On a machine that is hooked up to the internet, it is very recommended that you set up you SSH server to disallow password authentication ("PasswordAuthentication no"). Otherwise you'll get thousands of probes every day trying to hack into your box. See my SSH Howto on disabling passwords.
The NX client, by default, relies on SSH password authentication and it knows nothing about your SSH key. In order for your NX client to connect we need to configure FreeNX (the server) to use it's own username/password database (since SSH now disabled this).
Edit /etc/nxserver/node.conf and uncomment/edit the following lines:
ENABLE_PASSDB_AUTHENTICATION="1" ENABLE_SSH_AUTHENTICATION="0" ENABLE_USER_DB="1"
Now we need to add a user to the FreeNX specific database. Use your same username and password that you normally use to log into the machine.
sudo nxserver --adduser your_username sudo nxserver --passwd your_username
With those changes, NX client should now be able to connect even though password authentication is off.