April 25, 2009

Install NX server on Ubuntu Hardy 8.04

NX sever is useful as it can give you secured connection for complete GUI work environment. You can think of this as remote desktop in Windows. This note explains how to install NX server on Ubuntu distribution since the installation instruction provided by NoMachine (here) was not enough for me to quickly have it done.

I suppose that you have one machine running Ubuntu (server) and one another (client) for your daily work running any OS. The following installation instruction is executed in the client machine.

0. Preparation
0.1 You need SSH and SFTP servers running in the server side for installation. Make it sure they are running.

0.2 The installation of NX server requires administratator privilege. You should be able to run "sudo" command with your account.

1. To your local disk, download Debian version of NX client, node and server (you indeed need all at the server side). I'm using NX Free Edition for Linux on http://www.nomachine.com/select-package.php?os=linux&id=1.

2. Upload *.deb packages, which you've just downloaded, to your home directory on the Ubuntu server. You may want to use SFTP client program such as FileZilla (http://filezilla-project.org/) for doing this.

3. Open a SSH session to the server, using any SSH client program such as Putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/). Install the packages that you downloaded by running dpkg utility.

sudo dpkg -i nxclient_X.Y.Z-W_i386.deb
sudo dpkg -i nxnode_3.3.0-17_i386.deb
sudo dpkg -i nxserver_3.3.0-22_i386.deb

You may have some warning for printer configuration file access. I ignored it because I don't need it.

5. Update the configuration file /etc/ssh/sshd_config;
(1) add "nx" to the list of allowed users

AllowUsers thkim rakesh nx

(2) add the next line for NX to get authentication information

AuthorizedKeysFile /usr/NX/home/nx/.ssh/authorized_keys2

If you encounter a problem, see this thread: here.


6. Restart SSH daemon to make the new configuration effective.

sudo /etc/init.d/ssh restart

7. Stop the server (it may have been stopped already) and restart it by running:

sudo /usr/NX/bin/nxserver --stop
sudo /usr/NX/bin/nxserver --start

8. Check the status by:

sudo /usr/NX/bin/nxserver --status

You must be able to see

NX> 900 Connecting to server ...
NX> 110 NX Server is running.
NX> 999 Bye.

It's all done!

Note)
It's possible not to get connected to a machine with a new security key if you have old information about it. In my case when I installed a new server on the machine that had been used as a server with a different OS, I had to delete My Documents/myname/known_host.