Remote Access mit NX NoMachine
Mit Hilfe von NX, einer Remote-Desktop-Software der Firma NoMachine, können wir auf den Bildschirminhalt eines entfernten Computers oder Servers von einem lokalen Rechner zugreifen. Dabei ist es egal welche Betriebssysteme zum Einsatz kommen. Somit könnte man zum Beispiel an zentraler Stelle mit einem leistungsfähigen Server aufsetzen, auf dem man dann mit älteren Rechnern oder Thin Clients zugreift und arbeitet. Auch Support und Remote-Access ist somit einrichtbar.
Ein großer Vorteil von NX ist, dass selbst bei einer Modemverbindung mit nur 40 kBit/s Datenübertragungsrate ein flüssiges Arbeiten möglich ist. Ein weiterer Hauptvorteil von NX gegenüber dem X11 Protokoll liegt darin, dass NX ähnlich wie VNC seamless connections unterstützt. So kann eine bestehende Verbindung zu einem NX Server getrennt und später wieder von einem anderen Rechner aufgenommen werden. Laufende Programme verrichten dabei auf dem Zielsystem weiterhin ihren Dienst.
Als Übertragungsprotokoll wird dabei ein SSH-X-Tunnel genutzt.
Sowohl die Basis-Bibliotheken wie auch die wichtisten Kernbestandteile von NX wurden von der Firma NoMachine unter die freie Lizenz GPL gestellt. Somit lassen sich sie auch in freie Desktops wie Gnome oder KDE integrieren. Nur die zentrale Client- und die Serverapplikation ist proprietär.
Server
Installation
Als erstes installieren wir uns die benötigten Server-Komponenten via YUM.
# yum install nx freenx
Was uns die beiden Pakete mitliefern, offentbart uns jeweils ein rpm -iql.
# rpm -iql nx
Name : nx Relocations: (not relocatable)
Version : 3.2.0 Vendor: CentOS
...
...
Group : Applications/Internet Source RPM: nx-3.2.0-8.el5.centos.src.rpm
Size : 7185322 License: GPL, MIT/X11 for X11 bits
Signature : DSA/SHA1, Di 15 Jul 2008 20:30:23 CEST, Key ID a8a447dce8562897
URL : http://www.nomachine.com
Summary : Proxy system for X11
Description :
NX provides a proxy system for the X Window System.
/usr/bin/nxagent
/usr/bin/nxesd
/usr/bin/nxproxy
/usr/bin/nxssh
/usr/lib/NX
/usr/lib/NX/lib
/usr/lib/NX/lib/libX11.so.6
/usr/lib/NX/lib/libX11.so.6.2
/usr/lib/NX/lib/libXcomp.so.3
/usr/lib/NX/lib/libXcomp.so.3.2.0
/usr/lib/NX/lib/libXcompext.so.3
/usr/lib/NX/lib/libXcompext.so.3.2.0
/usr/lib/NX/lib/libXcompshad.so.3
/usr/lib/NX/lib/libXcompshad.so.3.2.0
/usr/lib/NX/lib/libXext.so.6
/usr/lib/NX/lib/libXext.so.6.4
/usr/lib/NX/lib/libXrender.so.1
/usr/lib/NX/lib/libXrender.so.1.2.2
/usr/lib/NX/nxagent
/usr/lib/NX/nxesd
/usr/lib/NX/nxproxy
/usr/lib/NX/nxssh
/usr/share/doc/nx-3.2.0
/usr/share/doc/nx-3.2.0/GUUG-Presentation-NX.pdf
/usr/share/doc/nx-3.2.0/LICENSE
/usr/share/doc/nx-3.2.0/README.SuSE
/usr/share/doc/nx-3.2.0/nxcl
/usr/share/doc/nx-3.2.0/nxcl/html
/usr/share/doc/nx-3.2.0/nxcomp
/usr/share/doc/nx-3.2.0/nxcomp/README
/usr/share/doc/nx-3.2.0/nxscripts
/usr/share/doc/nx-3.2.0/nxscripts/CHANGELOG
/usr/share/doc/nx-3.2.0/nxscripts/COPYING
/usr/share/doc/nx-3.2.0/nxscripts/LICENSE
/usr/share/doc/nx-3.2.0/nxscripts/nxagent-service
/usr/share/doc/nx-3.2.0/nxscripts/nxreplace
/usr/share/doc/nx-3.2.0/nxscripts/run-nxagent
/usr/share/doc/nx-3.2.0/nxscripts/run-nxagent-client
/usr/share/doc/nx-3.2.0/nxscripts/run-nxagent-full
/usr/share/doc/nx-3.2.0/nxscripts/run-nxagent-nxfs
/usr/share/doc/nx-3.2.0/nxscripts/run-nxagent-server
/usr/share/doc/nx-3.2.0/nxscripts/run-nxagent-shadow
/usr/share/doc/nx-3.2.0/nxscripts/run-nxagent-solaris
/usr/share/doc/nx-3.2.0/nxscripts/run-nxagent-windows
/usr/share/doc/nx-3.2.0/nxscripts/run-nxdesktop
/usr/share/doc/nx-3.2.0/nxscripts/run-nxdesktop-client
/usr/share/doc/nx-3.2.0/nxscripts/run-nxdesktop-server
/usr/share/doc/nx-3.2.0/nxscripts/run-nxproxy
/usr/share/doc/nx-3.2.0/nxscripts/run-nxproxy-client
/usr/share/doc/nx-3.2.0/nxscripts/run-nxproxy-connect
/usr/share/doc/nx-3.2.0/nxscripts/run-nxproxy-reversed
/usr/share/doc/nx-3.2.0/nxscripts/run-nxproxy-server
/usr/share/doc/nx-3.2.0/nxscripts/run-nxproxy-thread
/usr/share/doc/nx-3.2.0/nxscripts/run-nxviewer
/usr/share/doc/nx-3.2.0/nxscripts/run-nxviewer-client
/usr/share/doc/nx-3.2.0/nxscripts/run-nxviewer-server
/usr/share/doc/nx-3.2.0/nxscripts/run-rdesktop
/usr/share/doc/nx-3.2.0/nxscripts/run-x11perf
/usr/share/doc/nx-3.2.0/nxscripts/tar-nx-X11
/usr/share/doc/nx-3.2.0/nxscripts/tar-nx-X11-org
/usr/share/doc/nx-3.2.0/nxscripts/tar-nx-X11-org-updated
/usr/share/doc/nx-3.2.0/nxscripts/tar-nx-X11-updated
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxagent
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxauth
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxauth-org
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxclient
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxcomp
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxcompext
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxcompsh
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxcompshad
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxdarwin
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxdesktop
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxesd
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxkbd
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxkdrive
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxkill
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxproxy
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxscripts
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxsensor
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxservice
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxspool
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxssh
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxsync
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxuexec
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxviewer
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxwin
/usr/share/doc/nx-3.2.0/nxscripts/tar-nxwin-org
/usr/share/doc/nx-3.2.0/nxscripts/update-NX
/usr/share/doc/nx-3.2.0/nxscripts/update-NX-client
/usr/share/doc/nx-3.2.0/nxscripts/update-NX-server
/usr/share/doc/nx-3.2.0/nxscripts/update-NX-workstation
/usr/share/doc/nx-3.2.0/nxscripts/update-nx-X11
/usr/share/doc/nx-3.2.0/samples
/usr/share/doc/nx-3.2.0/samples/README
/usr/share/doc/nx-3.2.0/samples/run-nxagent-client
/usr/share/doc/nx-3.2.0/samples/run-nxagent-server
/usr/share/doc/nx-3.2.0/samples/run-nxapp
/usr/share/doc/nx-3.2.0/samples/run-nxproxy-client
/usr/share/doc/nx-3.2.0/samples/run-nxproxy-server
Sowie:
# rpm -iql freenx Name : freenx Relocations: (not relocatable) Version : 0.7.3 Vendor: CentOS ... ... Group : Applications/Internet Source RPM: freenx-0.7.3-1.el5.centos.src.rpm Size : 259532 License: GPL Signature : DSA/SHA1, Di 28 Okt 2008 12:57:47 CET, Key ID a8a447dce8562897 URL : http://freenx.berlios.de Summary : Freenx application/thin-client server Description : Freenx is an application/thin-client server based on nx technology. NoMachine nx is the next-generation X compression and roundtrip suppression scheme. It can operate remote X11 sessions over 56k modem dialup links or anything better. This package contains a free (GPL) implementation of the nxserver component. /etc/nxserver /etc/nxserver/node.conf.sample /etc/rc.d/init.d/freenx-server /usr/bin/nxcups-gethost /usr/bin/nxdesktop_helper /usr/bin/nxdialog /usr/bin/nxkeygen /usr/bin/nxloadconfig /usr/bin/nxnode /usr/bin/nxnode-login /usr/bin/nxpasswd /usr/bin/nxprint /usr/bin/nxredir /usr/bin/nxserver /usr/bin/nxserver-helper /usr/bin/nxsetup /usr/bin/nxviewer_helper /usr/share/doc/freenx-0.7.3 /usr/share/doc/freenx-0.7.3/AUTHORS /usr/share/doc/freenx-0.7.3/CONTRIB /usr/share/doc/freenx-0.7.3/COPYING /usr/share/doc/freenx-0.7.3/ChangeLog /usr/share/doc/freenx-0.7.3/nxacl.sample /usr/share/doc/freenx-0.7.3/nxcheckload.sample /var/lib/nxserver /var/lib/nxserver/db /var/lib/nxserver/db/closed /var/lib/nxserver/db/failed /var/lib/nxserver/db/running
Konfiguration
NX Server
Als erstes kopieren wir uns die mitgelieferte Musterkonfigurationsdatei in das Konfigurationsverzeichnis /etc/nxserver des FreeNX Server.
# cp /etc/nxserver/node.conf.sample /etc/nxserver/node.conf
Anschließend bearbeiten wir diese Date und passen ggf. den vom sshd verwendeten Port an und aktivieren die Passdb_Authentication.
# vim /etc/nxserver/node.conf
... # This adds the passdb to the possible authentication methods ENABLE_PASSDB_AUTHENTICATION="1" ... ... # This directives controls the verbosity of the server-wide log. NX_LOG_LEVEL=3 NX_LOGFILE=/var/log/nxserver.log ...
Unsere Logdatei nxserver.log legen wir nun noch an.
# touch /var/log/nxserver.log
Und geben dem User nx die Zugriffsrechte auf die Datei.
# chown nx:nx /var/log/nxserver.log
Anschließend kopieren wir die Datei authorized_keys2 in das Homeverzeichnis des Users nx.
# cp -a /var/lib/nxserver/home/.ssh/authorized_keys2 /var/lib/nxserver/home/.ssh/authorized_keys
Unsere Änderung aktivieren wir nun mit einem Restart des FreeNX Servers.
# service freenx-server restart
SSH Daemon
Damit sich der User nx auch via ssh einloggen darf, geben wir diesen User in der zentralen Konfigurationsdatei des SSH Daemon frei.
# vim /etc/ssh/sshd_config
... AllowUsers django nx
Unsere Änderung aktivieren wir nun mit einem Restart des SSH-Servers.
# service sshd restart
erster Programmstart
Nun ist es an der Zeit unseren freenx-Server das erste mal zu starten.
# service freenx-server start
freenx-server starten: [ OK ]
automatisches Starten des Servers beim Systemstart
Damit nun unser freenx-Server beim Booten automatisch gestartet wird, nehmen wir noch folgende Konfigurationsschritte vor.
# chkconfig freenx-server on
Anschließend überprüfen wir noch unsere Änderung:
# chkconfig --list | grep freenx-server freenx-server 0:Aus 1:Aus 2:Ein 3:Ein 4:Ein 5:Ein 6:Aus
Client
Download
Den Client laden wir uns von der NoMachine - NX Client for Linux - Seite herunter.
# cd /usr/local/src/packages/ # wget http://64.34.161.181/download/3.5.0/Legacy/nxclient-3.5.0-6.i386.rpm
Installation
Das soeben heruntergeladene RPM-Paket installieren wir nun mit:
# yum localinstall --nogpgcheck /usr/local/src/packages/nxclient-3.5.0-6.i386.rpm
Was uns dieses Client-Paket mitliefert, offentbart uns jeweils ein rpm -iql.
# rpm -qil nxclient
Name : nxclient Relocations: (not relocatable) Version : 3.5.0 Vendor: NoMachine Release : 6 Build Date: Do 19 Mai 2011 17:53:25 CEST Install Date: Do 28 Jul 2011 08:01:19 CEST Build Host: build07 Group : NoMachine NX Source RPM: nxclient-3.5.0-6.src.rpm Size : 9678135 License: NoMachine License Signature : (none) Packager : NoMachine URL : http://www.nomachine.com/ Summary : NX Client Description : NoMachine NX is a fast and scalable terminal server system based on the X11 protocol. NX lets you work fluently even across slow links like modems and provides a full set of administration tools that make it a complete desktop virtualization solution for your organization. This package contains the graphical front-end used to access X, RDP and RFB sessions on a remote NX Server. It also includes NX X compression libraries and utilities needed by both NX Client and Server. Baseline: nx-X11: 3.5.0-1 nxauth: 3.5.0-1 nxwin: 3.5.0-1 nxssh: 3.5.0-1 nxcomp: 3.5.0-1 nxesd: 3.5.0-2 nxkill: 3.5.0-1 nxservice: 3.5.0-2 nxcompsh: 3.5.0-1 nx-X11-compat: 3.5.0-1 /etc/profile.d/nx.csh /etc/profile.d/nx.sh /usr/NX /usr/NX/bin /usr/NX/bin/nxclient /usr/NX/bin/nxesd /usr/NX/bin/nxkill /usr/NX/bin/nxprint /usr/NX/bin/nxservice /usr/NX/bin/nxssh /usr/NX/lib /usr/NX/lib/libXcomp.so /usr/NX/lib/libXcomp.so.3 /usr/NX/lib/libXcomp.so.3.5.0 /usr/NX/lib/libXcompsh.so /usr/NX/lib/libXcompsh.so.3 /usr/NX/lib/libXcompsh.so.3.5.0 /usr/NX/lib/libcrypto.so /usr/NX/lib/libcrypto.so.0.9.8 /usr/NX/lib/libjpeg.so /usr/NX/lib/libjpeg.so.62 /usr/NX/lib/libjpeg.so.62.0.0 /usr/NX/lib/libpng12.so /usr/NX/lib/libpng12.so.0 /usr/NX/lib/libpng12.so.0.1.2.8 /usr/NX/lib/libz.so /usr/NX/lib/libz.so.1 /usr/NX/lib/libz.so.1.2.3 /usr/NX/share /usr/NX/share/applnk /usr/NX/share/applnk/clean /usr/NX/share/applnk/clean/.directory /usr/NX/share/applnk/clean/nxclient-admin.desktop /usr/NX/share/applnk/clean/nxclient-help.desktop /usr/NX/share/applnk/clean/nxclient-wizard.desktop /usr/NX/share/applnk/clean/nxclient.desktop /usr/NX/share/applnk/mdk /usr/NX/share/applnk/mdk/menu /usr/NX/share/applnk/mdk/nxclient /usr/NX/share/applnk/mime-kde /usr/NX/share/applnk/mime-kde/nx-session.desktop /usr/NX/share/applnk/mime-xdg /usr/NX/share/applnk/mime-xdg/nomachine.xml /usr/NX/share/applnk/network /usr/NX/share/applnk/network-gnome /usr/NX/share/applnk/network-gnome/.directory /usr/NX/share/applnk/network-gnome/nxclient-admin-gnome.desktop /usr/NX/share/applnk/network-gnome/nxclient-gnome.desktop /usr/NX/share/applnk/network-gnome/nxclient-help-gnome.desktop /usr/NX/share/applnk/network-gnome/nxclient-wizard-gnome.desktop /usr/NX/share/applnk/network-rh8 /usr/NX/share/applnk/network-rh8/.directory /usr/NX/share/applnk/network-rh8/nxclient-admin.desktop /usr/NX/share/applnk/network-rh8/nxclient-help.desktop /usr/NX/share/applnk/network-rh8/nxclient-wizard.desktop /usr/NX/share/applnk/network-rh8/nxclient.desktop /usr/NX/share/applnk/network/.directory /usr/NX/share/applnk/network/nxclient-admin.desktop /usr/NX/share/applnk/network/nxclient-help.desktop /usr/NX/share/applnk/network/nxclient-wizard.desktop /usr/NX/share/applnk/network/nxclient.desktop /usr/NX/share/applnk/x-nxclient /usr/NX/share/applnk/x-nxclient-direct /usr/NX/share/applnk/x-nxclient-direct/.directory /usr/NX/share/applnk/x-nxclient-direct/nxclient-admin.desktop /usr/NX/share/applnk/x-nxclient-direct/nxclient-help.desktop /usr/NX/share/applnk/x-nxclient-direct/nxclient-wizard.desktop /usr/NX/share/applnk/x-nxclient-direct/nxclient.desktop /usr/NX/share/applnk/x-nxclient-kde /usr/NX/share/applnk/x-nxclient-kde/.directory /usr/NX/share/applnk/x-nxclient-kde/nxclient-admin-kde.desktop /usr/NX/share/applnk/x-nxclient-kde/nxclient-help-kde.desktop /usr/NX/share/applnk/x-nxclient-kde/nxclient-kde.desktop /usr/NX/share/applnk/x-nxclient-kde/nxclient-wizard-kde.desktop /usr/NX/share/applnk/x-nxclient/.directory /usr/NX/share/applnk/x-nxclient/nxclient-admin.desktop /usr/NX/share/applnk/x-nxclient/nxclient-help.desktop /usr/NX/share/applnk/x-nxclient/nxclient-wizard.desktop /usr/NX/share/applnk/x-nxclient/nxclient.desktop /usr/NX/share/applnk/xdg-x /usr/NX/share/applnk/xdg-x-direct /usr/NX/share/applnk/xdg-x-direct/nxclient.directory /usr/NX/share/applnk/xdg-x-direct/nxclient.menu /usr/NX/share/applnk/xdg-x/nxclient.directory /usr/NX/share/applnk/xdg-x/nxclient.menu /usr/NX/share/cups /usr/NX/share/cups/mime.convs /usr/NX/share/cups/mime.types /usr/NX/share/documents /usr/NX/share/documents/client /usr/NX/share/documents/client/cups-info /usr/NX/share/documents/client/license-info /usr/NX/share/documents/client/readme-info /usr/NX/share/fonts /usr/NX/share/fonts/TTF /usr/NX/share/fonts/TTF/encodings.dir /usr/NX/share/fonts/TTF/fonts.dir /usr/NX/share/fonts/TTF/fonts.scale /usr/NX/share/fonts/TTF/luximb.ttf /usr/NX/share/fonts/TTF/luximbi.ttf /usr/NX/share/fonts/TTF/luximr.ttf /usr/NX/share/fonts/TTF/luximri.ttf /usr/NX/share/fonts/TTF/luxirb.ttf /usr/NX/share/fonts/TTF/luxirbi.ttf /usr/NX/share/fonts/TTF/luxirr.ttf /usr/NX/share/fonts/TTF/luxirri.ttf /usr/NX/share/fonts/TTF/luxisb.ttf /usr/NX/share/fonts/TTF/luxisbi.ttf /usr/NX/share/fonts/TTF/luxisr.ttf /usr/NX/share/fonts/TTF/luxisri.ttf /usr/NX/share/fonts/base /usr/NX/share/fonts/base/10x20-ISO8859-1.pcf.gz /usr/NX/share/fonts/base/5x7-ISO8859-1.pcf.gz /usr/NX/share/fonts/base/5x8-ISO8859-1.pcf.gz /usr/NX/share/fonts/base/6x10-ISO8859-1.pcf.gz /usr/NX/share/fonts/base/6x12-ISO8859-1.pcf.gz /usr/NX/share/fonts/base/6x13-ISO8859-1.pcf.gz /usr/NX/share/fonts/base/6x13B-ISO8859-1.pcf.gz /usr/NX/share/fonts/base/6x13O-ISO8859-1.pcf.gz /usr/NX/share/fonts/base/6x9-ISO8859-1.pcf.gz /usr/NX/share/fonts/base/7x13-ISO8859-1.pcf.gz /usr/NX/share/fonts/base/7x13B-ISO8859-1.pcf.gz /usr/NX/share/fonts/base/7x13O-ISO8859-1.pcf.gz /usr/NX/share/fonts/base/7x14-ISO8859-1.pcf.gz /usr/NX/share/fonts/base/7x14B-ISO8859-1.pcf.gz /usr/NX/share/fonts/base/8x13-ISO8859-1.pcf.gz /usr/NX/share/fonts/base/8x13B-ISO8859-1.pcf.gz /usr/NX/share/fonts/base/8x13O-ISO8859-1.pcf.gz /usr/NX/share/fonts/base/9x15-ISO8859-1.pcf.gz /usr/NX/share/fonts/base/9x15B-ISO8859-1.pcf.gz /usr/NX/share/fonts/base/9x18-ISO8859-1.pcf.gz /usr/NX/share/fonts/base/9x18B-ISO8859-1.pcf.gz /usr/NX/share/fonts/base/cursor.pcf.gz /usr/NX/share/fonts/base/encodings.dir /usr/NX/share/fonts/base/fonts.alias /usr/NX/share/fonts/base/fonts.dir /usr/NX/share/icons /usr/NX/share/icons/16x16 /usr/NX/share/icons/16x16/application-nx-session.png /usr/NX/share/icons/16x16/nxclient-admin.png /usr/NX/share/icons/16x16/nxclient-desktop.png /usr/NX/share/icons/16x16/nxclient-icon.png /usr/NX/share/icons/16x16/nxclient-wizard.png /usr/NX/share/icons/22x22 /usr/NX/share/icons/22x22/application-nx-session.png /usr/NX/share/icons/22x22/nxclient-admin.png /usr/NX/share/icons/22x22/nxclient-desktop.png /usr/NX/share/icons/22x22/nxclient-icon.png /usr/NX/share/icons/22x22/nxclient-wizard.png /usr/NX/share/icons/32x32 /usr/NX/share/icons/32x32/application-nx-session.png /usr/NX/share/icons/32x32/nxclient-admin.png /usr/NX/share/icons/32x32/nxclient-desktop.png /usr/NX/share/icons/32x32/nxclient-icon.png /usr/NX/share/icons/32x32/nxclient-wizard.png /usr/NX/share/icons/48x48 /usr/NX/share/icons/48x48/application-nx-session.png /usr/NX/share/icons/48x48/nxclient-admin.png /usr/NX/share/icons/48x48/nxclient-desktop.png /usr/NX/share/icons/48x48/nxclient-icon.png /usr/NX/share/icons/48x48/nxclient-wizard.png /usr/NX/share/images /usr/NX/share/images/about-down.png /usr/NX/share/images/about-up.png /usr/NX/share/images/connect-01.png /usr/NX/share/images/connect-02.png /usr/NX/share/images/connect-03.png /usr/NX/share/images/connect-04.png /usr/NX/share/images/connect-fail-01.png /usr/NX/share/images/error.png /usr/NX/share/images/folder-shared-disabled.png /usr/NX/share/images/folder-shared.png /usr/NX/share/images/info.png /usr/NX/share/images/kill-dsb.png /usr/NX/share/images/kill.png /usr/NX/share/images/logo-small.png /usr/NX/share/images/logo.png /usr/NX/share/images/monitor-arrow-over.png /usr/NX/share/images/monitor-arrow.png /usr/NX/share/images/monitor-box.png /usr/NX/share/images/monitor-icon.png /usr/NX/share/images/monitor-mask.png /usr/NX/share/images/monitor-message.png /usr/NX/share/images/monitor-user-dsb.png /usr/NX/share/images/monitor-user.png /usr/NX/share/images/multimedia.png /usr/NX/share/images/new-session-dsb.png /usr/NX/share/images/new-session.png /usr/NX/share/images/printer-default-icon-disabled.png /usr/NX/share/images/printer-default-icon.png /usr/NX/share/images/printer-icon-disabled.png /usr/NX/share/images/printer-icon.png /usr/NX/share/images/printer-shared-disabled.png /usr/NX/share/images/printer-shared.png /usr/NX/share/images/pulldown-close.png /usr/NX/share/images/pulldown-suspend.png /usr/NX/share/images/pulldown-terminate.png /usr/NX/share/images/refresh-dsb.png /usr/NX/share/images/refresh.png /usr/NX/share/images/remove-dsb.png /usr/NX/share/images/remove.png /usr/NX/share/images/session-stats-01-dsb.png /usr/NX/share/images/session-stats-01.png /usr/NX/share/images/session-stats-02-dsb.png /usr/NX/share/images/session-stats-02.png /usr/NX/share/images/sharing.png /usr/NX/share/images/terminate-dsb.png /usr/NX/share/images/terminate.png /usr/NX/share/images/view-log-dsb.png /usr/NX/share/images/view-log.png /usr/NX/share/images/warning.png /usr/NX/share/images/wizard.png /usr/NX/share/keyboards /usr/NX/share/keys /usr/NX/share/keys/server.id_dsa.key /usr/NX/share/rgb
Konfiguration
Serverseite
Unser Nutzer, den wir nachfolgend einrichten werden, muss natürlich im System bereits bekannt seinn, d.h. er muss bereits einen Nutzeraccount haben. Auf den Desktop dieses Nutzers werden wir dann zukünftig den Zugriff ermöglichen. Diesen Nutzer geben wir nun dem NX Server bekannt.
# nxserver --adduser django NX> 100 NXSERVER - Version 3.2.0-73 OS (GPL, using backend: not detected) NX> 1000 NXNODE - Version 3.2.0-73 OS (GPL, using backend: not detected) NX> 716 Public key added to: /home/django/.ssh/authorized_keys2 NX> 1001 Bye. NX> 999 Bye
Weiterhin hinterlegen wir das Zugangspasswort für den späteren NX Client.
Bei der Eingabe des Passwortes genau aufpassen, da dies nur 1x eingegeben werden muss!
# nxserver --passwd django NX> 100 NXSERVER - Version 3.2.0-73 OS (GPL, using backend: not detected) New password: Password changed. NX> 999 Bye
Die somit erzeugte Schlüsseldatei /home/django/.ssh/authorized_keys2 fügen wir nun an die bestehende Datei authorized_keys im Verzeichnis /home/django/.ssh an.
# cat /home/django/.ssh/authorized_keys2 >> /home/django/.ssh/authorized_keys
Anschließend kontrollieren wir noch die Dateizugriffsberechtigungen und passen diese bei Bedarf an.
# chmod 600 authorized_keys # chown django.django authorized_keys
Clientseite
Die Konfiguration des Clients nehmen wir nun direkt über die GUI des NX Clients for Linux vor.
Diesen rufen wir über das Menü Anwendungen - Internet - NX Client for Linux auf, oder starten die GUI von der Konsole aus:
$ /usr/NX/bin/nxclient
Wir klicken uns also durch die folgenden Fenster und geben jeweils die Daten unserer Arbeitsumgebung passend ein:
Im folgenden Fenster tragen wir den Hostnamen und die Portnummer ein, auf den wir später zugreifen wollen. Ferner geben wir der Sitzung einen eindeutigen Sitzungsnamen, unter der wir später die Verbindung aufbauen wollen. Die Netzwerkanbindung, die uns für den Zugriff zu Verfügung steht, wählen wir über den Schieberegler aus.
Hier legen wir fest, welcher Displaymanager auf dem Zielsystem läuft und wie groß die Bildschirmauflösung dort ist.
Für den schnellen und leichten Zugriff lassen wir uns eine Verknüpfung auf den Desktop legen. Da wir aber noch den Schlüssel für die Netzwerkverkbindung hinterlegen müssen, setzen wir das Häkchen bei Advanced Configuration dialog.
Im folgenden Fenster wählen wir die Schaltfläche Key aus.
Hier tragen wir nun den client.id_dsa.key den wir bei der Clientinstallation auf dem Server erzeugt hatten. Dieser befindet sich im Verzeichnis /var/lib/nxserver/home/.ssh/ auf den Server/Zielrechner!.
# cat /var/lib/nxserver/home/.ssh/client.id_dsa.key
Zum Schluß speichern wir unsere Änderungen natürlich ab.
Clientverbindung aufbauen
Die Verbindung zu unserem Client rufen wir über das Menü Anwendungen - Internet - NX Client for Linux auf, oder starten die GUI von der Konsole aus:
$ /usr/NX/bin/nxclient
Nach Eingabe unseres Passwortes, welches wir bei der Clientinstallation auf dem Server eingegeben hatten, wird die Verbindung zum Client aufgebaut.
Sofern bereits eine Session auf dem Zielhost für den gewählten Nutzer läuft, wir uns im Verbindungsdialog diese im folgenden Fenster zur Auswahl angeboten.
Die Verbindung zum Client wird aufgebaut: