X2go command line client written in python
pyhoca-cli \kx [ options ]
pyhoca-cli aims to be a cross-platform (Windows, Mac OS X, Linux) X2Go command line client written in Python.
You can use it for scripting remote X2Go sessions or simply starting, resuming or shadowing X2Go sessions from the command line in a terminal.
It supports versatile command line options as well as parsing x2goclient configuration files.
See the included README and TODO for further information on pyhoca-cli.
pyhoca-cli accepts the following common options:
\*(T<-h, --help\*(T>
Display a help with all available command line options and exit.
\*(T<-V, --version\*(T>
Output version information and exit.
\*(T<-d, --quiet\*(T>
No output to stdout at all!
\*(T<-d, --debug\*(T>
Enable debugging output.
\*(T<--libdebug\*(T>
Enable debugging code of the unterlying Python X2Go module.
\*(T<--libdebug-sftpxfer\*(T>
Enable debugging code of Python X2Go's sFTP server code (very verbose, and it may even reveal promiscuous data).
You either have to specify a server name or a pre-configured X2GoClient session profile to tell pyhoca-cli to what X2Go server to connect. pyhoca-cli will not start if neither of these two options has been given on the command line.
\*(T<--server <HOSTNAME_or_IP>\*(T>
If not in LDAP mode you always have to name the remote X2Go server's hostname or IP address.
\*(T<-P, --session-profile <SESSION_PROFILE_NAME>\*(T>
The name of the session profile to be used to make the connection.
pyhoca-cli accepts exclusively one of the listed actions:
\*(T<-N, --new\*(T>
Start a new X2Go session on server (default mode if no mode is explicitly specified).
\*(T<-R, --resume <SESSION_NAME>\*(T>
Resume existing X2Go session <SESSION_NAME> on server. Special values for <SESSION_NAME> are ,,NEWEST'' (will resume youngest session) or ,,OLDEST'' (resume session with oldest timestamp).
\*(T<-D, --share-desktop <USER>@<DISPLAY>\*(T>
Share an X2Go session on the remote server specified by <USER>@<DISPLAY>, whereas <USER> can be the same user that is starting the share mode session or any other user that grants X2Go desktop sharing for the current user.
\*(T<-S, --suspend <SESSION_NAME>\*(T>
Suspend running X2Go session <SESSION_NAME>. A special value for <SESSION_NAME> is ,,ALL'' (will suspend all sessions of the connected user).
\*(T<-T, --terminate <SESSION_NAME>\*(T>
Terminate running X2Go session <SESSION_NAME>. A special value for <SESSION_NAME> is ,,ALL'' (will terminate all sessions of the connected user).
\*(T<-L, --list-sessions\*(T>
List user's X2Go sessions on server.
\*(T<--from-stdin\*(T>
For LightDM remote login integration: read <username> <host[:port]> <desktopshell> <password> from STDIN' and start a new session, transfer a running session or resume a suspended session.
If there are several sessions running/suspended of the same desktop shell, then the first session found will be transferred/resumed. If there are several sessions running with a different desktop shell as session type (or even rootless sessions) none of these session will be touched unless any of the discovered sessions match in the requested desktop shell (i.e. X2Go session type).
This option is only available for the Linux version of pyhoca-cli.
pyhoca-cli actions can be tweaked by these options:
\*(T<--clean-sessions\*(T>
Clean all of the user's suspended/running sessions before starting a new one on the named X2Go server.
\*(T<--terminate-on-ctrl-c\*(T>
Terminate the connected session when pressing CTRL+C (instead of suspending the session).
\*(T<-c, --command <CMD>\*(T>
Command to run with --new mode on server (default: xterm).
\*(T<-u, --username <USERNAME>\*(T>
Username for the session (default: currently logged in user).
\*(T<--password <PASSWORD>\*(T>
User password for this session. If a matching private SSH key is available this one will be preferred for authentication. The cleartext password that has been specified at the command line will be masqueraded in the systems process list (Linux, MacOS). On Windows systems the usage of the --password option is forbidden.
\*(T<-p, --remote-ssh-port <R_PORT>\*(T>
Remote X2Go server's SSH port (default: 22).
\*(T<-k, --ssh-privkey <SSH_PRIVKEY>\*(T>
Use file <SSH_PRIVKEY> as private key for SSH connections (default: ~/.ssh/id_rsa).
\*(T<--add-to-known-hosts\*(T>
Add RSA/DSA host key to ~/.ssh/known_hosts if authenticity of server can't be established (default: not set).
\*(T<--sound {pulse|esd|none}\*(T>
X2Go server's sound system (default: 'pulse').
\*(T<-F, --share-local-folders <folder1>[,<folder2>[,...]]\*(T>
A comma separated list of local folders that shall be made available in the remote X2Go session.
\*(T<--printing\*(T>
Use X2Go printing (default: disabled).
\*(T<--share-mode {0|1}\*(T>
Share mode for X2Go desktop sharing (0: view-only, 1: full access).
\*(T<--auth-attempts {0,1,2,3,...}\*(T>
Number of interactive authentication attempts in case authentication with the server fails (wrong password?). A value that equals 0 disables interactive authentication completely and requires that a private SSH key has been given on the command line or in the session profile or that the --password command line option is used.
In case you want to retrieve X2Go session profiles from an X2Go Session Broker use the following options:
\*(T<--broker-url=<URL>\*(T>
Specify the <URL> of the X2Go Session Broker. pyhoca-cli can access http:// and ssh:// style URLs.
Syntax of <URL> for HTTP brokerage:
http(s)://<user>:<password>@<hostname>:<port>/path/to/broker
Syntax of <URL> for SSH brokerage:
ssh://<user>:<password>@<hostname>:<port>/usr/bin/x2gobroker (or any executable that provides the broker via SSH).
\*(T<--broker-password <password>\*(T>
Session broker password for retrieving session profiles from the X2Go Session Broker. The cleartext password that has been specified at the command line will be masqueraded in the systems process list (Linux, MacOS). On Windows systems the usage of the --broker-password option is forbidden.
\*(T<--broker-cacertfile=</path/to/cafile.crt>\*(T>
NOT IMPLEMENTED YET: Specify a special (self-signed) root-CACert file that shall get used when connecting to an X2Go Session Broker via https (SSL). (Not implemented, yet).
\*(T<--broker-noauth\*(T>
NOT IMPLEMENTED YET: The X2Go Session Broker is accessible without authentication.
\*(T<--auth-id=<USERNAME>\*(T>
NOT IMPLEMENTED YET: Use this <USERNAME> for authenticating against the X2Go Session Broker. This option mostly makes sense together with --broker-autologin or --broker-ssh-key. (Not implemented, yet).
\*(T<--broker-autologin\*(T>
NOT IMPLEMENTED YET: For SSH based X2Go Session Brokers. If an SSH agent is available or default key files exist then try those for authentication against the X2Go Session Broker. (Not implemented, yet).
\*(T<--broker-ssh-key=<SSHPRIVKEY>\*(T>
NOT IMPLEMENTED YET: For SSH based X2Go Session Brokers. Full path to a valid SSH private key file. (Not implemented, yet).
\*(T<-g, --geometry {<WIDTH>x<HEIGHT>|fullscreen|maximize}\*(T>
Screen geometry (default: '800x600').
\*(T<-q, --link {modem|isdn|adsl|wan|lan}\*(T>
link quality (default: 'adsl')
\*(T<-t, --session-type {desktop|application}\*(T>
Session type (default: 'application'). Note: there are also some auto-detection feature for the session type built into the code. It might not always happen what you expect from setting this option.
\*(T<-p, --pack <PACK_METHOD>\*(T>
Compression method (see below for possible values).
\*(T<--kbd-layout {us|de|fr|...}\*(T>
Use keyboard layout (default: 'us').
\*(T<--kbd-type {auto|pc105/us|pc105/de|...}\*(T>
Set Keyboard type (default 'pc105/us'). Use auto as value here to enable X2Go's keyboard auto-detection code.
pyhoca-gui supports transparent use of different data backends. For configuration three backends are common: FILE, GCONF (Linux only) and WINREG (Windows only). The default backend currently is the FILE backend on all platforms.
For client-server communication the only yet implemented backend is the STDOUT backend (as X2Go server commands print their execution results to /dev/stdout. (But other communication backends might be possible in the future...).
In the same way we are focusing on a successor of the current NX3 agent/proxy tool. A change in the proxy backend will also be implemented as a backend.
\*(T<--backend-controlsession <CONTROLSESSION_BACKEND>\*(T>
Force usage of a certain CONTROLSESSION_BACKEND (do not use this unless you know exactly what you are doing).
\*(T<--backend-terminalsession <TERMINALSESSION_BACKEND>\*(T>
Force usage of a certain TERMINALSESSION_BACKEND (do not use this unless you know exactly what you are doing).
\*(T<--backend-serversessioninfo <SERVERSESSIONINFO_BACKEND>\*(T>
Force usage of a certain SERVERSESSIONINFO_BACKEND (do not use this unless you know exactly what you are doing).
\*(T<--backend-serversessionlist <SERVERSESSIONLIST_BACKEND>\*(T>
Force usage of a certain SERVERSESSIONLIST_BACKEND (do not use this unless you know exactly what you are doing).
\*(T<--backend-proxy <PROXY_BACKEND>\*(T>
Force usage of a certain PROXY_BACKEND (do not use this unless you know exactly what you are doing).
\*(T<--backend-sessionprofiles <SESSIONPROFILES_BACKEND>\*(T>
Use given backend for accessing session profiles, available backends on Linux: FILES, GCONF; on Windows: FILES, WINREG.
\*(T<--backend-clientsettings <CLIENTSETTINGS_BACKEND>\*(T>
Use given backend for accessing the client settings configuration, available backends on Linux: FILES, GCONF; on Windows: FILES, WINREG.
\*(T<--backend-clientprinting <CLIENTPRINTING_BACKEND>\*(T>
Use given backend for accessing the client printing configuration, available backends on Linux: FILES, GCONF; on Windows: FILES, WINREG..SH COMPATIBILITY OPTIONS pyhoca-cli aims at being fully compatible with all command line options and session config files of the X2Go project's X2Go command line client x2goclient-cli as well as the x2goclient GUI. This is still work in progress. To achieve this, some compatibility options have already been added:
\*(T<--port <R_PORT>\*(T>
Compatibility option, synonymous to --remote-ssh-port <R_PORT>.
\*(T<--ssh-key <SSH_PRIVKEY>\*(T>
Compatibility option, synonymous to --ssh-privkey SSH_KEY.
\*(T<--use-sound {yes|no}\*(T>
Compatibility option, synonymous to --sound {pulse|none}.
\*(T<--client-ssh-port <PORT>\*(T>
Compatibility option for the x2goclient GUI. PyHoca-Cli (resp. Python X2Go) brings its own internal sFTP server. Thus, this option will be ignored.
As NX compression methods (--pack option) the following values are possible. The % character must be replaced by a digit 0-9.
nopack, 8, 64, 256, 512, 4k, 32k, 64k, 256k, 2m, 16m 256-rdp, 256-rdp-compressed, 32k-rdp, 32k-rdp-compressed, 64k-rdp 64k-rdp-compressed, 16m-rdp, 16m-rdp-compressed rfb-hextile, rfb-tight, rfb-tight-compressed 8-tight, 64-tight, 256-tight, 512-tight, 4k-tight, 32k-tight 64k-tight, 256k-tight, 2m-tight, 16m-tight 8-jpeg-%, 64-jpeg, 256-jpeg, 512-jpeg, 4k-jpeg, 32k-jpeg 64k-jpeg, 256k-jpeg, 2m-jpeg, 16m-jpeg-% 8-png-jpeg-%, 64-png-jpeg, 256-png-jpeg, 512-png-jpeg, 4k-png-jpeg 32k-png-jpeg, 64k-png-jpeg, 256k-png-jpeg, 2m-png-jpeg, 16m-png-jpeg-% 8-png-%, 64-png, 256-png, 512-png, 4k-png 32k-png, 64k-png, 256k-png, 2m-png, 16m-png-% 16m-rgb-%, 16m-rle-%
/usr/share/doc/python-x2go
This manual has been written by for the X2Go project (http://www.x2go.org) by
Mike Gabriel <[email protected]>