Secure VNC using SSH port forwarding
Install x11vnc and openssh-server on your remote machine.
Open port 5900 to localhost and port 22 to at least your client machine.
On your client machine, ssh to the remote machine with,
then run this command,
Then on your client machine, start your vnc client and connect to localhost on port 5900.
This will forward through ssh to your remote machine. When you're done and exit your vnc client, the x11vnc command will die and you can exit that ssh connection.
For Windows, use Putty or maybe cygwin for ssh and then tightvnc or realvnc or something like that. On Mac, just use terminal or X11 xterm for ssh and jollys fast vnc or chicken of the vnc or whatever. On Linux use your terminal and tightvnc or whatever - you probably know ;)