FreeNX
From Linuxintro
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.
Contents
QuickStart
In this chapter, the SUSE Linux distribution is used as example.
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 # 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
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
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.
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
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
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
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
/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 $