Setting up NX
I wanted a remote graphical environment on a machine in the cloud. It’s very easy to download No Machine’s NX and install it. You’ll also have to run sudo apt-get install ubuntu-desktop unity-2d gdm
if you’re on a server, since the server install doesn’t come with a graphical environment by default.
NX 4
Note that you can’t use Ubuntu’s Unity desktop with NX, so you’ll have to install an alternate desktop environment and update your NX configs.
If you run into a problem with the lock screen rejecting your password then you can fix it with it:
sudo chown root:shadow /sbin/unix_chkpwd
sudo chmod 2755 /sbin/unix_chkpwd
sudo chown root:shadow /etc/shadow
sudo chmod g+r /etc/shadow
If you get the message “Your evaluation period has expired” or similar, you can solve that by uninstalling NX, deleting /usr/NX, and then re-installing /usr/NX
If you get the message “Could not locate the ssh client at ‘C:\Program Files (x86)\NoMachine\bin\nxssh.exe'” then it’s because you’ve installed the free version of NX which does not support SSH, so you’ll need to install the pro version.
NX 3
To run unity-2d with NX 3, you’ll need to hit “Configure…” and then in the “Desktop” section, select “Unix” and “Custom”, press “Settings…”, choose “Run the following command”, fill in “gnome-session –session=ubuntu-2d”, and set the “New virtual desktop” option.
Securing NX 3
You can increase the security over the default NX installation, by following these instructions :
- Download and install the client, node, and server in that order
- In /etc/ssh/sshd_config add the nx user by setting
AllowUsers nx
and restart the ssh daemon sudo /etc/init.d/ssh restart. - NX uses a deprecated location for the ssh authorized_keys file, so you must fix that or you will get a public key authentication failed error. Open /usr/NX/etc/server.cfg and change
#SSHAuthorizedKeys = "authorized_keys2"
toSSHAuthorizedKeys = "authorized_keys"
. Now run sudo mv /usr/NX/home/nx/.ssh/authorized_keys2 /usr/NX/home/nx/.ssh/authorized_keys if there’s an authorized_key2 file present. - Run sudo /usr/NX/scripts/setup/nxserver –install
- If you’ve disabled SSH passwords then you’ll also need to set
EnableUserDB = "1"
andEnablePasswordDB = "1"
in /usr/NX/etc/server.cfg and then run sudo /usr/NX/bin/nxserver –useradd $USER since we’ve disabled passwords when we locked down SSH. - Change the default NX key. Run sudo /usr/NX/bin/nxserver –keygen. In your NX client, open “Configure…” > “General” tab > “Key …” and copy the contents of “/usr/NX/share/keys/default.id_dsa.key” into the key window and save it.
- Optional for connecting to multiple servers at once: Change DisplayBase in /usr/NX/etc/server.cfg.
- Restart the NX server to pickup your changes: sudo /etc/init.d/nxserver restart
Thanks for the guide!
When I login remotely to my locked desktop as the currently logged in user, the screen unlocks, such that a user sitting at the computer could easily take over. Is there a way to prevent this, other than logging in remotely as a different user?
Hi Michael, you’ll want to login into NX using a virtual desktop. In NX 4, you’ll need a paid version.