We have looked at other remote desktop-sharing programs in the past, but one of my favourites is NoMachine's NX. NX has been around for a long time, and one of the reasons I enjoy it so much is that it uses SSH as a transport and authentication layer. If the remote system can run sshd, and port 22 or some other port that sshd is listening to can be accessed through a firewall, then you have most of the pre-requisites for remote desktop access via NX already in place.
NX server is available for Linux and Solaris, so it isn't as cross-platform as one might like. If, however, you strictly need something to share or access a remote Linux or Solaris system, NX is a perfect solution.
The free NX server is packaged with many Linux distributions. On Fedora, you can easily install it using:
# yum install freenx-server
The client package is called freenx-client; clients for other operating systems can be downloaded from the NX web site.
Once the server package is installed, you can start it by executing:
# service freenx-server start
The best transport mechanism NX uses is SSH — this allows strong authentication and encryption of the session. The client will connect to the remote system as the nx user, so if you have modified /etc/ssh/sshd_config to only allow specific users, you will need to add the user nx to this list.
Next, you need to obtain a copy of the server's /etc/nxserver/client.id_dsa.key file and import it on the client. You also need to know the user's password that you want to establish the connection for. Essentially, the NX client will connect to the server as the user nx, then authenticate locally to the defined user with the defined password, and finally start the remote desktop.
To launch the Linux client from the freenx-client package, launch the qtnx application (also available under Applications | Internet in Fedora's GNOME menu). If a freenx client is not available, download the client from the NX web site.
Under the Services tab of the official NX client, you can determine whether or not multimedia support is enabled (i.e., receive sound events from the server), whether CUPS printing is enabled, and whether SMB file sharing is enabled. This functionality does not exist in the QtNX client.
NX is a really fast, and very secure, remote desktop system. The Free NX server comes with most Linux distributions, and the clients are free for download; there are clients for Linux, Windows, OS X, and Solaris.
The downside of NX is that the server only runs on Linux and Solaris. It would be really great to see a server for OS X, and one for Windows as well. Then NX would be the perfect cross-platform replacement for other remote desktop protocols, including VNC.
Vincent Danen works on the Red Hat Security Response Team and lives in Canada. He has been writing about and developing on Linux for over 10 years and is a veteran Mac user.