Difference between revisions of "FreeNX"

From Linuxintro
Line 1: Line 1:
 
The NX protocol aims at offering a stateful desktop session to remote users, like [[VNC]]. The most prominent difference is that NX requires less bandwidth. FreeNX is one implementation of the [[NX]] protocol.
 
The NX protocol aims at offering a stateful desktop session to remote users, like [[VNC]]. The most prominent difference is that NX requires less bandwidth. FreeNX is one implementation of the [[NX]] protocol.
  
= QuickStart =
+
= SUSE 13.1 =
In this chapter, the SUSE Linux [[distribution]] is used as example.
+
This is how I installed a FreeNX server on SUSE 13.1x32 on 2014-07-19:
 
+
* [[open a console]] and enter
* [[Install]] [[FreeNX]]
 
[[yast]] -i FreeNX
 
* Setup FreeNX:
 
nxsetup
 
: continue as advised. The NX server is started automatically.
 
* Connect to the NX server
 
nxclient
 
You can now log in.
 
 
 
= Trial 2 =
 
FreeNX server is not available with SUSE 13.1 so I
 
 
  # yast -i expect rdesktop
 
  # yast -i expect rdesktop
 
  # wget http://download.opensuse.org/repositories/home:/beyerle:/NX/openSUSE_13.1/i586/NX-3.5.0-123.1.i586.rpm
 
  # wget http://download.opensuse.org/repositories/home:/beyerle:/NX/openSUSE_13.1/i586/NX-3.5.0-123.1.i586.rpm
Line 23: Line 12:
 
* set it up
 
* set it up
 
  # nxsetup --setup-nomachine-key
 
  # nxsetup --setup-nomachine-key
 
now qtnx asks me for a password but I don't know which one
 
 
but ps -Hef helps:
 
root      4173  3692  3 06:17 pts/4    00:00:00      qtnx
 
root      4174  4173  0 06:17 pts/4    00:00:00        ssh -p22 -iid.key nx@localhost -x -2 -oRhostsAuthentication no -
 
 
cat /etc/shadow delivers
 
nx:*:16220::::::
 
 
= Trial 3 =
 
# wget http://download.opensuse.org/repositories/home:/beyerle:/NX/openSUSE_13.1/x86_64/FreeNX-0.7.3-7.1.x86_64.rpm http://download.opensuse.org/repositories/home:/beyerle:/NX/openSUSE_13.1/x86_64/NX-3.5.0-123.1.x86_64.rpm
 
# yast -i rdesktop libpixman-1-0-devel libpng16-devel fontconfig-devel Mesa-libEGL-devel Mesa-libEGL-devel-32bit fontconfig-devel-32bit freetype2-devel-32bit fontconfig-32bit libxrender-devel-32bit Mesa-libGL-devel-32bit libpixman-1-0-32bit libgobject-2_0-0-32bit libxcb-render-0-32bit libxcb-shm0-32bit cairo-devel cairo-tools cairo-devel-32bit
 
# nxserver --status
 
No such user name: nx
 
NX> 100 NXSERVER - Version 3.2.0-73 OS (GPL, using backend: not detected)
 
NX> 110 NX Server is stopped
 
NX> 999 Bye
 
# nxserver --start
 
No such user name: nx
 
NX> 100 NXSERVER - Version 3.2.0-73 OS (GPL, using backend: not detected)
 
mv: cannot stat ‘/var/lib/nxserver/home/.ssh/authorized_keys.disabled’: No such file or directory
 
NX> 122 Service started
 
NX> 999 Bye
 
tweedleburg:~ # mkdir -p /var/lib/nxserver
 
tweedleburg:~ # useradd -m -d /var/lib/nxserver/home/ nx
 
 
Now I get
 
<pre>
 
NX> 203 NXSSH running with pid: 16802
 
NX> 285 Enabling check on switch command
 
NX> 285 Enabling skip of SSH config files
 
NX> 285 Setting the preferred NX options
 
NX> 200 Connected to address: 127.0.0.1 on port: 22
 
NX> 202 Authenticating user: nx
 
NX> 208 Using auth method: publickey
 
NX> 204 Authentication failed.
 
</pre>
 
 
Quickly installed everything so nxssh does not return an error.
 
 
Now in /root/.nx/temp/3397 I find the logs. runlog says
 
[Tue Jul 15 14:59:52 2014]: LoginDialog::connectHost() nxsshline=/usr/NX/bin/nxssh -nx -p 22 -i /root/.nx/temp/3397/keylog nx@localhost -x -2 -4 -o RhostsAuthentication no -o PasswordAuthentication no -o RSAAuthentication no -o RhostsRSAAuthentication no -o PubkeyAuthentication yes -B -E
 
 
<pre>
 
tweedleburg:~/.nx/temp/10416 # /usr/NX/bin/nxssh -nx -p 22 -i /root/.nx/temp/10416/keylog nx@localhost -x -2 -4 -o RhostsAuthentication no -o PasswordAuthentication no -o RSAAuthentication no -o RhostsRSAAuthentication no -o PubkeyAuthentication yes -B -E
 
NX> 203 NXSSH running with pid: 10937
 
NX> 200 Connected to address: 127.0.0.1 on port: 22
 
NX> 202 Authenticating user: nx
 
NX> 208 Using auth method: publickey
 
NX> 204 Authentication failed.
 
tweedleburg:~/.nx/temp/10416 # /usr/NX/bin/nxssh -nx -p 22 nx@localhost -x -2 -4 -o RhostsAuthentication no -o PasswordAuthentication no -o RSAAuthentication no -o RhostsRSAAuthentication no -o PubkeyAuthentication yes -B -E
 
NX> 203 NXSSH running with pid: 10942
 
NX> 200 Connected to address: 127.0.0.1 on port: 22
 
NX> 202 Authenticating user: nx
 
NX> 208 Using auth method: publickey
 
HELLO NXSERVER - Version 3.2.0-73 OS (GPL, using backend: 3.5.0)
 
NX> 105
 
</pre>
 
 
 
 
cp /root/.ssh/id_dsa /usr/NX/share/keys/server.id_dsa.key
 
 
= Trial 4: SUSE 12.3 =
 
* download all files from http://download.opensuse.org/repositories/home:/beyerle:/NX/openSUSE_12.3/x86_64/
 
# rpm -Uvh cairo-devel-1.12.14-5.1.x86_64.rpm libcairo-gobject2-1.12.14-5.1.x86_64.rpm libcairo-script-interpreter2-1.12.14-5.1.x86_64.rpm libcairo2-1.12.14-5.1.x86_64.rpm
 
# rpm -Uvh NX-3.5.0-123.1.x86_64.rpm FreeNX-0.7.3-7.1.x86_64.rpm
 
 
/var/lib/nxserver/home/.ssh # cat /var/NX/nx/.ssh/default.id_dsa.pub >> authorized_keys
 
 
 
 
<pre>
 
ls3523:/var/lib/nxserver/home/.ssh # nxserver --stop
 
No processes found.
 
NX> 100 NXSERVER - Version 3.2.0-73 OS (GPL, using backend: 3.5.0)
 
NX> 123 Service stopped
 
NX> 999 Bye
 
ls3523:/var/lib/nxserver/home/.ssh # nxserver --status
 
No processes found.
 
NX> 100 NXSERVER - Version 3.2.0-73 OS (GPL, using backend: 3.5.0)
 
NX> 110 NX Server is stopped
 
NX> 999 Bye
 
ls3523:/var/lib/nxserver/home/.ssh # cp /root/.ssh/id_dsa /usr/NX/share/keys/server.id_dsa.key
 
ls3523:/var/lib/nxserver/home/.ssh # ssh -i /usr/NX/share/keys/server.id_dsa.key nx@localhost
 
Password:
 
 
ls3523:/var/lib/nxserver/home/.ssh # cat /root/.ssh/id_dsa.pub > /home/nx/.ssh/authorized_keys
 
ls3523:/var/lib/nxserver/home/.ssh # nxserver --start
 
No processes found.
 
NX> 100 NXSERVER - Version 3.2.0-73 OS (GPL, using backend: 3.5.0)
 
NX> 122 Service started
 
NX> 999 Bye
 
ls3523:/var/lib/nxserver/home/.ssh # nxserver --status
 
No processes found.
 
NX> 100 NXSERVER - Version 3.2.0-73 OS (GPL, using backend: 3.5.0)
 
NX> 110 NX Server is running
 
NX> 999 Bye
 
ls3523:/var/lib/nxserver/home/.ssh # ssh -i /usr/NX/share/keys/server.id_dsa.key nx@localhost
 
Last failed login: Wed Jul 16 17:47:40 CEST 2014 from localhost on ssh:notty
 
There were 23 failed login attempts since the last successful login.
 
Have a lot of fun...
 
/usr/bin/xauth:  file /home/nx/.Xauthority does not exist
 
nx@ls3523:~> exit
 
logout
 
Connection to localhost closed.
 
ls3523:/var/lib/nxserver/home/.ssh # /usr/NX/bin/nxssh -nx -p 22 -i /root/.nx/temp/10398/keylog nx@localhost -x -2 -4 -o RhostsAuthentication no -o PasswordAuthentication no -o RSAAuthentication no -o RhostsRSAAuthentication no -o PubkeyAuthentication yes -B -E
 
NX> 203 NXSSH running with pid: 11380
 
NX> 200 Connected to address: 127.0.0.1 on port: 22
 
NX> 202 Authenticating user: nx
 
NX> 208 Using auth method: publickey
 
bash: no: command not found
 
</pre>
 
 
/var/lib/nxserver # mkdir -p db/closed
 
/var/lib/nxserver # mkdir -p db/failed
 
/var/lib/nxserver # chown -R nx db/
 
 
= Trial 5: Fedora 20 =
 
yum install freenx-server
 
yum install nxagent
 
nxsetup
 
* made sure nx can log in via ssh without key from root
 
* changed nx config file to contain root's private key
 
* login worked
 
 
= Trial 6: SUSE 13.1x32 =
 
 
= TroubleShooting =
 
* starting the nxagent, you get
 
/usr/NX/bin/nxagent: error while loading shared libraries: libXcomp.so.3: cannot open shared object file: No such file or directory
 
: Download nxcomp from http://software.opensuse.org/package/libXcomp3 and [[install]] it.
 
 
* during nxsetup, you get
 
strings: '/usr/bin/nxagent': No such file
 
Error: Could not find 1.5.0 or 2.[01].0 version string in nxagent. NX 1.5.0 or 2.[01].0 backend is needed for this version of FreeNX.
 
: copy /usr/NX/bin/nxagent to /usr/bin
 
 
* The connection fails during the "Negotiating link parameters" step.
 
: Stop the [[fireWall]] on the target computer.
 
 
* The connection fails after the "Authentication completed" step.
 
you get an error message like that:
 
NX> 1004 Error: NX Agent exited with exit status 1.
 
Can't open /var/lib/nxserver/db/running/sessionId{CBE6C1DE8281C9A77A5F72F05947EE1F}: No such file or directory.
 
mv: cannot stat `/var/lib/nxserver/db/running/sessionId{CBE6C1DE8281C9A77A5F72F05947EE1F}': No such file or directory
 
: Possible workaround: re-install the NX server
 
 
* You get an error when logging in
 
: Test the connection using [[ssh]], there may be no lines of text sent when logging in. So, e.g. not
 
hello world
 
$
 

Revision as of 12:06, 19 July 2014

The NX protocol aims at offering a stateful desktop session to remote users, like VNC. The most prominent difference is that NX requires less bandwidth. FreeNX is one implementation of the NX protocol.

SUSE 13.1

This is how I installed a FreeNX server on SUSE 13.1x32 on 2014-07-19:

# yast -i expect rdesktop
# wget http://download.opensuse.org/repositories/home:/beyerle:/NX/openSUSE_13.1/i586/NX-3.5.0-123.1.i586.rpm
# wget http://download.opensuse.org/repositories/home:/beyerle:/NX/openSUSE_13.1/i586/FreeNX-0.7.3-7.1.i586.rpm
# rpm -ivh NX-3.5.0-123.1.i586.rpm FreeNX-0.7.3-7.1.i586.rpm
  • read how to set it up
# cat /usr/share/doc/packages/FreeNX/README.SuSE
  • set it up
# nxsetup --setup-nomachine-key