SSH key stored on a smart card System login with Kerberos ticket existing on client side Server to Node Login with password Login with SSH key forwarded from client (e.g. NoMachine Player) via server to node Login with Kerberos ticket forwarded from client via server to node Login with Kerberos ticket requested by Kinit on server host Login with Kerberos ticket requested by PAM module on server host. Login with password to Kerberos ticket requested by PAM module on node host Legacy technology NX compresses the X11 data to minimize the amount of data transmitted, and caches data to keep the session as responsive as possible. For example, the first time a menu is opened, it may take a few seconds, but is subsequently almost instant. NX is faster than its predecessors, as it eliminates most of the X round trips, while dxpc and MLView only compress data. The two principal components of NX are nxproxy and nxagent. nxproxy is derived from dxpc and is started on both the remote (client in X terminology) and local (server in X terminology) machines, simulating an X server on the client and forwarding remote X protocol requests to the local X server. Simplest setup: remote clients (xterm, etc.) ↕ nxproxy client ↕ Network ↕ nxproxy server ↕ local X server (monitor/keyboard) nxproxy alone achieves 1:10 to 1:1000 compression ratios, reducing bandwidth, but does not eliminate most of X's synchronous round trips, responsible for most of X's perceived latency. nxagent, derived from Xnest (similar to Xephyr), is typically started on the remote (client) machine, thus avoiding most X11 protocol round trips. Together with nxproxy (built into nxagent), this setup performs well over low-bandwidth and high-latency links. Typical setup: remote clients (xterm, etc.) ↕ nxagent server side \ nxagent client side nxagent executable nxproxy client / ↕ Network ↕ nxproxy server ↕ local X server (monitor/keyboard) On systems with a functional X11 implementation, nxproxy and nxagent are all that is needed to establish a connection with low-bandwidth requirements between a set of remote X clients and the local X server. SSH can be used to establish a secure tunnel between the hosts. NX 3 relies on SSH functionalities and existing open-source SSH software, making it possible to run contemporary Unix and Windows desktops and arbitrary network applications over the Internet in a secured and controlled way. FreeNX and the various NX Clients are used for