===== X2Go TCE and MS Terminal Servers =====
X2Go Client can be used to connect to Microsoft Windows Terminal Servers. There are two modes available: DirectRDP support and X2Go-proxied RDP support.
==== Direct/Native RDP Sessions =====
Especially for X2Go Client running on the X2Go TCE, we added a feature to X2Go Client that we call //DirectRDP//. In DirectRDP mode X2Go Client basically becomes a GUI frontend for ''rdesktop'' or ''xfreerdp'' (which of the two is configurable per session profile). If a session profile is configured for DirectRDP mode, X2Go Client turns into a normal RDP client GUI.
This can be very handy on X2Go Thin Client Environment machines. For Linux-based businesses, in most cases it cannot be avoided having a few MS Windows machines on site. If your company's IT concept is server/client based, then the X2Go TCE comes into play. You can use X2Go Client (in TCE mode) to manage your sessions on your company's X2Go Server and also provide session profiles for your (e.g.) accountants who need to work on the MS Windows machines.
Session profiles with DirectRDP support can also be deployed via the X2Go Session Broker. So most features of the X2Go Session Broker can be combined with X2Go Client's DirectRDP feature.
Note that DirectRDP support is only available for the Linux version of X2Go Client, as it has been especially designed for use in the context of the X2Go Thin Client Environment.
{{:wiki:advanced:tce:x2go-directrdp.png?600|}}
* profile name: a descriptive name for that session profile
* hostname: the hostname of the RDP server (i.e. the MS Windows machine)
* username: username on the RDP server
* Session Type: //Connect to Windows terminal server//
* Tick a mark on //[x] Direct RDP Connection//
Direct RDP sessions should then be fine-tuned under the Settings tab.
=== RDP client backends ===
X2Go Client allows to select what RDP client backend should be used. You can either choose ''rdesktop'' or ''xfreerdp''. The client of your choice also has to be installed on the X2Go Client machine.
The ''rdestop'' command is rather old (but still maintained by its developers) and only supports RDP session protocol versions up-to RDPv5. However, in some cases ''rdesktop'' appears to be more robust than ''xfreerdp''.
The FreeRDP project develops the ''xfreerdp'' command line RDP client. The project development is very active at the time of writing this (spring 2014) and many RDP features of recent RDP protocol versions are implemented / are getting implemented in FreeRDP.
The fine-tuning of RDP client specific features is done via specifying extra command line options of the respective RDP client. See //man rdesktop// or //man xfreerdp// on the machine that you want to use X2Go Client on.
=== Fine-tuning DirectRDP Sessions (xfreerdp) ===
Some command line options are derived from the X2Go Client session profile settings (hostname, username, geometry, etc.).
{{:wiki:advanced:tce:x2go-directrdp-freerdp-settings1.png?600|}}
Extra command line options for ''rdesktop'' can be specified in the //Additional parameters// field.
{{:wiki:advanced:tce:x2go-directrdp-freerdp-settings2.png?600|}}
=== Fine-tuning DirectRDP Sessions (rdesktop) ===
Some command line options are derived from the X2Go Client session profile settings (hostname, username, geometry, etc.).
{{:wiki:advanced:tce:x2go-directrdp-rdesktop-settings1.png?600|}}
Extra command line options for ''rdesktop'' can be specified in the //Additional parameters// field.
{{:wiki:advanced:tce:x2go-directrdp-rdesktop-settings2.png?600|}}
==== X2Go-proxied RDP Sessions =====
=== What is X2Go-proxying ===
With X2Go you can launch any application hosted on a Linux-based X2Go Server. These applications can run inside a full desktop session launched on a remote X2Go Server or these applications can run independently and seamlessly integrate into your local desktop session (e.g. see the [[wiki:advanced:published-applications|Published Applications]] documentation).
An RDP session is a remote session on an MS Windows machine. With an RDP client application like the ''rdesktop'' command line utility, you can connect to MS Windows desktops and launch remote sessions on that Windows machine from a Linux-based desktop.
An X2Go-proxied RDP session now is an RDP session that gets launched inside an X2Go session.
=== How it works in detail ===
If X2Go Client is used for proxying an RDP session, the session start up goes like this:
* an X2Go Client machine connects to an X2Go Server
* On this X2Go Server the ''rdesktop'' is installed
* From this X2Go Server the MS Windows machine (Terminal Server or Workstation) can be reached (maybe on some internal network)
* X2Go Client launches an X2Go Session and calls the ''rdesktop'' command inside this session (with a special set of parameters)
* The ''rdesktop'' RDP client connects to the MS Windows machine, starts/resumes an RDP session there
* The RDP client's Windows desktop window appears inside the X2Go Session
* Whatever appears in the X2Go Session gets displayed on the X2Go Client machine
* the X2Go Client can now work on an MS Windows machine
=== Benefits of X2Go-proxied RDP Sessions ===
There are some benefits gained from this approach compared to direct RDP session setups.
* Traffic between server/client is always encrypted via SSH
* On low bandwidth lines, an X2Go-proxied RDP Session might scale better than the native RDP protocol
* The proxying X2Go Server can be used as a firewall pass-through gateway and you can connect to machines behind that firewall
* All SSH-related extra authentication features (SSH pubkey/privkey, OTP authentication, GPG-SmartCard authentication, etc.) can be used for the connection to the proxying X2Go Server (i.e. double secure your network)
=== Session Setup for X2Go-proxied RDP Sessions ===
{{:wiki:advanced:tce:x2go-proxied-rdp.png?600}}
In X2Go Client's session profile manager, select the following parameters:
* profile name: a descriptive name for that session profile
* hostname: the hostname of the RDP-proxying X2Go Server
* username: username on the RDP-proxying X2Go Server
* SSH authentication features: if appropriate, select a private SSH key, enable agent based authentication or use GSSAPI
* Session Type: //Connect to Windows terminal server//
* Session options: Server: IP address or hostname of the MS Windows machine. (The hostname most be resolvable on the X2Go Server machine!)
* Advanced options...: ''-u -d ''
=== Username and Password for SSH / RDP ===
If you want to save your users from having to enter username and password twice (SSH for X2Go Server, RDP for MS Windows machine), you can put these special parameters into the advanced RDP options:
-u X2GO_USER -p X2GO_PASSWORD
==== Credits ====
X2Go Client's DirectRDP feature was sponsored by the [[http://rohloff.de|Rohloff AG]] back in 2012.