Support Center

Your questions answered

Knowledge Base

Searching in: Articles & FAQs
Filter the search results
Applies to:
Last update:
Searching in: Articles & FAQs
ID: AR01F00498
Applies to: NX Software
Added on: 2008-01-24
Last update: 2015-07-02
Using NoMachine software (4.6.4 or earlier) to connect to unsupported platforms

Offering packages for a wide range of platforms and operating systems is a great effort in terms of development, maintenance and support and even if NoMachine pays the greatest attention to its users' needs, it is possible that your platform is not currently supported.

NoMachine is planning to make it easier to handle remote nodes when they are not NoMachine nodes. In its current implementation, when the server has multi-node support, you can add a new node (with NoMachine software installed) by running the 'nxserver --nodeadd' command. In the future it will be possible to extend this command to allow the adding of remote hosts without the NoMachine software installed there.

The related Feature Request is here: https://www.nomachine.com/FR10K02777.

Until then, if your platform is not among the supported ones you can exploit all the NoMachine capabilities by getting your X application to securely forward its display to your NoMachine (virtual) session by X11 Forwarding over SSH. You can do this by means of a shell script to be executed on demand at session start-up.

This works with both connections by SSH and NX protocol and requires that the NoMachine server supports virtual sessions (not available with the free to download NoMachine package and NoMachine Enterprise Deesktop).

How to forward display of any X application to the NX session

The example below illustrates how to get a Solaris X86 desktop forwarded to the NoMachine session. You may easily extend this to fit your needs.

machine A is the machine owning the X application you want to forward. machine A could run Solaris X86 or whichever O.S. supporting X.

machine B is the machine where NoMachine server and its subsystem is installed. Machine B can run any of the O.S. among the Linux platforms supported by NoMachine. It's necessary that the NoMachine server supports virtual desktop sessions (not available with NoMachine free and NoMachine Enterprise Desktop).

machine C is the machine where a NoMachine client is installed and the NoMachine session will be displayed.  It's the end-user's machine.

user A is any of the system accounts on machine A.

user B is any of the system accounts on machine B.

 


Configure machine A

It is advisable to enable public key authentication on machine A. This allows secure authentication of users on machine A by means of an SSH key pair and without the need for providing any password.

1) Ensure that SSH server on machine A:

- Is configured to permit public-key authentication.

- Has the X11Forwarding directive enabled.

2) Generate a pair of SSH keys, by default id_dsa.pub and id_dsa.

3) On machine A, add the public key, i.e. id_dsa.pub, to the authorized keys file of user A, usually '/home/userA/.ssh/authorized_keys2' or '/home/userA/.ssh/authorized_keys'.

Ensure that the authorized keys file has permissions 600.

4) On machine B, copy the private key, i.e. id_dsa, in the userB's home/.ssh directory.

Ensure that the /home/userB/.ssh directory has permissions 700.

 

Create the shell script to get X forwarding

On machine B, create the script for executing X11 Forwarding over SSH.

A basic sample script, forward.sh, is:

userB@machineB:~$ cat > forward.sh <<EOF
#!/bin/sh
ssh -X userB@machineA /usr/dt/bin/Xsession
EOF
userB@machineB:~$

This script needs to have proper permissions set to be executed by user B.

If you want to extend this script to multiple users, you may retrieve the usernames from the environment:

ssh -X $USER@machineA /usr/dt/bin/Xsession

You will then need to ensure that all users enabled to log on to NoMachine server on machine B can execute this script.

Run your NoMachine session and get the Solaris X86 desktop forwarded


- On machine C, run the NoMachine client and connect to the NoMachine server.

- Choose 'Create a new desktop or custom session'.

- Then choose 'Create a new custom session'.

- In the 'Custom session' panel choose 'Run the following command' and specify path to the forward.sh script on machine B.
  For example: /home/userB/scripts/forward.sh

- You can either select 'Run the command in a floating window' or 'Run the command in a virtual desktop'.

 

For users having NX Client 3.5.0:

- On machine C, run the NX Client and access the Configuration GUI.

- In the NX Client GUI -> General -> Desktop section choose 'Unix Custom'.

- In the Custom - Settings panel choose 'Run the following command' and specify path to the forward.sh script on machineB.
  For example: /home/userB/scripts/forward.sh

- In the NX Client login dialog, insert login and password for user B and start the session.

 


 

Alternative method

As an alternative, you might want to configure NoMachine to run the forward.sh script as an X-window system start-up script. In this way forward.sh will become the X-window system start-up script for all users enabled to log on to the NoMachine server on machine B and a request for running the default X client script on the server. The script has to be executable by all users.


- Edit the node configuration file, i.e. /usr/NX/etc/node.cfg to have:

  DefaultXSession  "/scriptDirectory/forward.sh"

  Where scriptDirectory is the directory where you placed the script. Ensure that this directory is accessible.

- On machine C, run the NoMachine client and connect to the NoMachine server.

- Choose 'Create a new desktop or custom session'.

- Then choose 'Create a new custom session'.

- In the 'Custom session' panel choose 'Run the default X client script on the server'.

 

For users having NX Client 3.5.0:

- On machine C run NX Client and access the Configuration GUI.

- In the NX Client GUI -> General -> Desktop section choose 'Unix Custom'.

- In the Custom - Settings panel choose 'Run the default X client script on the server'.

- In the NX Client login dialog, insert login and password for user B and start the session.