pyhoca-cli - Man Page

X2Go command line client written in Python

Synopsis

pyhoca-cli [ options ] [[<user>@]<host>]

Description

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.

Common Options

pyhoca-cli accepts the following common options:

-h,  --help

Display a help with all available command line options and exit.

-V,  --version

Output version information and exit.

--quiet

No output to stdout at all!

-d,  --debug

Enable debugging output.

--libdebug

Enable debugging code of the underlying Python X2Go module.

--libdebug-sftpxfer
--list-cmdline-features

Print a machine-readable list of client-side features to STDOUT and exit. Enable debugging code of Python X2Go's sFTP server code (very verbose, and it may even reveal promiscuous data).

Server / Session Profile

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.

--server <HOSTNAME_or_IP>

Legacy parameter, still supported, but using positional argument [<user>@]<host>] should become your preferred syntax.

-P,  --session-profile <SESSION_PROFILE_NAME>

The name of the session profile to be used to make the connection.

--non-interactive

Enforce non-interactive mode. Avoid any TTY interaction during runtime.

Actions

pyhoca-cli accepts exclusively one of the listed actions:

-N,  --new

Start a new X2Go session on server (default mode if no mode is explicitly specified).

--try-resume

When given with --new , try finding and resuming a session originally started with the same command. If that fails, start a new session, finally.

-R,  --resume <SESSION_NAME>

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).

-D,  --share-desktop <USER>@<DISPLAY>

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.

-S,  --suspend <SESSION_NAME>

Suspend running X2Go session <SESSION_NAME>. A special value for <SESSION_NAME> is ,,ALL'' (will suspend all sessions of the connected user).

-T,  --terminate <SESSION_NAME>

Terminate running X2Go session <SESSION_NAME>. A special value for <SESSION_NAME> is ,,ALL'' (will terminate all sessions of the connected user).

-L,  --list-sessions

List user's X2Go sessions on server.

--list-profiles

List user's X2Go session profiles configure on this client.

--from-stdin

For LightDM remote login integration: read <username> <host[:port]> <command> <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.

Action Options

pyhoca-cli actions can be tweaked by these options:

--clean-sessions

Clean all of the user's suspended/running sessions before starting a new one on the named X2Go server.

--terminate-on-ctrl-c

Terminate the connected session when pressing CTRL+C (instead of suspending the session).

X2go Options

-c,  --command <CMD>

Command to run with --new mode on server (default: xterm).

-l,  -u,  --username <USERNAME>

Username for the session (default: currently logged in user).

--password <PASSWORD>

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.

--force-password

Enforce authentication with username and password, prohibit SSH public/private key authentication.

-p,  --remote-ssh-port <R_PORT>

Remote X2Go server's SSH port (default: 22).

-i,  -k,  --ssh-privkey <SSH_PRIVKEY>

Use file <SSH_PRIVKEY> as private key for SSH connections (default: ~/.ssh/id_rsa).

--add-to-known-hosts

Add RSA/DSA host key to ~/.ssh/known_hosts if authenticity of server can't be established (default: not set).

-A,  --forward-sshagent

Enable SSH agent forwarding.

--sound {pulse|esd|none}

X2Go server's sound system (default: 'pulse').

-F,  --share-local-folders <folder1>[,<folder2>[,...]]

A comma separated list of local folders that shall be made available in the remote X2Go session.

--printing

Use X2Go printing (default: disabled).

--share-mode {0|1}

Share mode for X2Go desktop sharing (0: view-only, 1: full access).

--kdrive

As graphical backend use the X2Go Kdrive Xserver instead of the default NXv3 Xserver.

--auth-attempts {0,1,2,3,...}

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.

Broker Options

In case you want to retrieve X2Go session profiles from an X2Go Session Broker use the following options:

--broker-url=<URL>

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).

--broker-password <password>

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.

--broker-cacertfile=</path/to/cafile.crt>

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).

--broker-noauth

NOT IMPLEMENTED YET: The X2Go Session Broker is accessible without authentication.

--auth-id=<USERNAME>

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).

--broker-autologin

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).

--broker-ssh-key=<SSHPRIVKEY>

NOT IMPLEMENTED YET: For SSH based X2Go Session Brokers. Full path to a valid SSH private key file. (Not implemented, yet).

SESSION OPTIONS (NXv3 or X2GoKDrive)

-g,  --geometry {<WIDTH>x<HEIGHT>|fullscreen|maximize}

Screen geometry (default: '800x600').

--dpi <DPI>

Launch X2Go session's Xserver with resolution <DPI> (in dots per inch).

--xinerama

Enable Xinerama support for multi-head setups. Requires X2Go Server 4.1.0.0 (or newer).

-q,  --link {modem|isdn|adsl|wan|lan}

Link quality (default: 'adsl')

-C,  --clipboard-mode {none|server|client|both}

Clipboard mode (default: ´both´ directions, other allowed values: ´none´ for no clipboard support, ´client´ to server copy+pasting only, ´server´ to client copy+pasting only)

-t,  --session-type {desktop|application}

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.

--pack <PACK_METHOD>

Compression method (see below for possible values).

--kbd-layout {us|de|fr|...}

Use keyboard layout (default: 'null').

--kbd-type {auto|pc105/us|pc105/de|...}

Set Keyboard type (default 'auto'). Use auto as value here to enable X2Go's keyboard auto-detection code.

Backend Options

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.

--backend-controlsession <CONTROLSESSION_BACKEND>

Force usage of a certain CONTROLSESSION_BACKEND (do not use this unless you know exactly what you are doing).

--backend-terminalsession <TERMINALSESSION_BACKEND>

Force usage of a certain TERMINALSESSION_BACKEND (do not use this unless you know exactly what you are doing).

--backend-serversessioninfo <SERVERSESSIONINFO_BACKEND>

Force usage of a certain SERVERSESSIONINFO_BACKEND (do not use this unless you know exactly what you are doing).

--backend-serversessionlist <SERVERSESSIONLIST_BACKEND>

Force usage of a certain SERVERSESSIONLIST_BACKEND (do not use this unless you know exactly what you are doing).

--backend-proxy <PROXY_BACKEND>

Force usage of a certain PROXY_BACKEND (do not use this unless you know exactly what you are doing).

--backend-sessionprofiles <SESSIONPROFILES_BACKEND>

Use given backend for accessing session profiles, available backends on Linux: FILES, GCONF; on Windows: FILES, WINREG.

--backend-clientsettings <CLIENTSETTINGS_BACKEND>

Use given backend for accessing the client settings configuration, available backends on Linux: FILES, GCONF; on Windows: FILES, WINREG.

--backend-clientprinting <CLIENTPRINTING_BACKEND>

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:

--port <R_PORT>

Compatibility option, synonymous to --remote-ssh-port <R_PORT>.

--ssh-key <SSH_PRIVKEY>

Compatibility option, synonymous to --ssh-privkey SSH_KEY.

--use-sound {yes|no}

Compatibility option, synonymous to --sound {pulse|none}.

--client-ssh-port <PORT>

Compatibility option for the x2goclient GUI. PyHoca-Cli (resp. Python X2Go) brings its own internal sFTP server. Thus, this option will be ignored.

NX Compression Methods

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-%

See Also

/usr/share/doc/python-x2go

Author

This manual has been written by for the X2Go project (https://www.x2go.org) by

Mike Gabriel <mike.gabriel@das-netzwerkteam.de>

Info

Aug 2023 Version 0.6.1.3 X2Go Application