# NoMachine

## How do I install NoMachine?

| Reading time: | 30 min |
|---------------|--------|
| Last updated: | 4 Aug 2026 |

| Author:        | Jason Andrews, Arm [GitHub](https://github.com/jasonrandrews) [LinkedIn](https://linkedin.com/in/jason-andrews-7b05a8) |
|----------------|---------------------------------------------------------------|
| Official docs: | [View](https://www.nomachine.com/all-documents)               |

This guide shows you how to install and use the tool with the most common configuration. For advanced options and complete reference information, see the official documentation. Some install guides also include optional next steps to help you explore related workflows or integrations.

[NoMachine](https://www.nomachine.com/) is a client-server application that you can use to connect to a remote Linux desktop, including Arm servers and cloud instances. The NoMachine server runs on the remote machine. The client runs on the local machine and connects to the remote server.

> **Note**  
> NoMachine Personal Edition requires a subscription or evaluation license. You can generate a 14-day evaluation license by creating an account at [NoMachine](https://users.nomachine.com/create-account).

During development, it might be useful to quickly create a remote desktop on an Arm server.

In this guide, you’ll learn how to set up NoMachine on a remote Arm Linux machine running Ubuntu.

### Install the xfce4 desktop

To connect to a remote desktop, you need to install desktop software. You can use [xfce4](https://www.xfce.org/) for a minimal install with good performance.

Install the desktop software:

```
sudo apt update && sudo apt upgrade -y
sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils xfce4-terminal -y
```

### Install NoMachine on a remote server

Create two files on the server in the home directory `$HOME`. Use a text editor to copy and paste this script into a file on the remote machine at `$HOME/nx-key.sh`. The contents of the files are as follows:

```bash
#!/bin/bash

if [ -f $HOME/.ssh/authorized_keys ]; then
    [ -d $HOME/.nx/config ] || mkdir -p $HOME/.nx/config
    cp $HOME/.ssh/authorized_keys $HOME/.nx/config/authorized.crt
else
    echo "No .ssh/authorized_keys file found"
fi
```

Use a text editor to copy and paste this script into a file on the remote machine at `$HOME/install-nomachine.sh`:

> **Note**  
> The following commands use NoMachine version 10.0.57. The same commands work with other versions. Replace the file used in these steps with the file for your version of choice. To download the latest version, see [NoMachine downloads](https://downloads.nomachine.com/).

```bash
#!/bin/bash

# install NoMachine for remote desktop
wget https://web9001.nomachine.com/download/10.0/Arm/nomachine-personal-edition_10.0.57_2_arm64.deb
sudo dpkg -i nomachine-personal-edition_10.0.57_2_arm64.deb
if [ $? != 0 ]; then
  exit 1
fi

# Configure NoMachine to use xfce4 as the desktop
sudo sed -i 's|DefaultDesktopCommand "/etc/X11/Xsession gnome-session"|DefaultDesktopCommand "/etc/X11/Xsession startxfce4"|' /usr/NX/etc/node.cfg

# user of the AMI must run the nx-key.sh to copy their key for NX
echo "$HOME/nx-key.sh" >> /home/$USER/.bashrc
sudo systemctl set-default multi-user

exit 0
```

Give both scripts executable permission:

```
chmod +x nx-key.sh install-nomachine.sh
```

On the remote machine, run the install script:

```
./install-nomachine.sh
```

### Activate the NoMachine license

NoMachine Personal Edition requires an evaluation or paid license. To activate a 14-day evaluation:

1. Create a NoMachine account at [https://users.nomachine.com/create-account](https://users.nomachine.com/create-account).
2. Log in to your User Area and navigate to the **Software** section.
3. Generate an evaluation license and download the `key.tar.gz` file.
4. Copy the file to the remote machine and extract it:

```
tar xzf key.tar.gz
```

1. Apply the license:

```
sudo /usr/NX/bin/nxserver --subscriptionset server.lic
```

The output confirms the license is active:

```
__output__ NX> 1277 Subscription for 'NoMachine Personal Edition Evaluation' has been updated.
```

Restart the NoMachine server:

```
sudo /usr/NX/bin/nxserver --restart
```

### Set a user password for a NoMachine connection

For NoMachine to work, it’s best to have a user account on the remote machine with a password. Many cloud instances have accounts without passwords and use only ssh keys to connect.

If the user account already has a password, you can skip this step.

To enable passwords, edit the file `/etc/sshd_config` and set `PasswordAuthentication to yes`.

To enable it in a script or from the command line, run:

```
sudo sed -i '/PasswordAuthentication no/c\PasswordAuthentication yes' /etc/ssh/sshd_config
```

Restart the SSH daemon:

```
sudo systemctl restart ssh
```

Set a password for the user account. The example shows ubuntu. Change the username as needed.

```
sudo passwd ubuntu
```

Enter a new password.

Remember the password for later when the client is connected.

### Open the NoMachine port

The default port for NoMachine is `4000`. If needed, open this port in the security group. Make sure to open ports only from your IP address, not from anywhere.

### Install the NoMachine client

[Download](https://downloads.nomachine.com/) and install NoMachine on the client you want to connect from. There are options for most operating systems including Android and iOS.

Start NoMachine on the client computer by following these steps:

1. Enter a name for the connection and the (public) IP of the remote machine. The default port is `4000`.

![NoMachine connection profile](https://learn.arm.com/install-guides/_images/nx-connect.png)  
*NoMachine connection profile*

1. The next screen is the login screen. Enter the username and password for the account on the remote machine.

![NoMachine login](https://learn.arm.com/install-guides/_images/nx-login.png)  
*NoMachine login*

1. If a question about creating a new display is presented, answer Yes.

![Create a new display](https://learn.arm.com/install-guides/_images/nx-confirm.png)  
*Create a new display*  
NoMachine will resize the remote desktop to fit in the client window. Change the remote display resolution to match the client window size.

![Set display resolution](https://learn.arm.com/install-guides/_images/nx-resize.png)  
*Set display resolution*

1. Finally, the desktop will appear and is ready to use.

![NoMachine remote desktop session](https://learn.arm.com/install-guides/_images/nx-desktop.png)  
*NoMachine remote desktop session*

You’re now ready to use NoMachine.
