pyhoca-cli - X2Go command line client written in Python
pyhoca-cli
[ options ] [[<user>@]<host>]
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:
- -h, --help
- Display a help with all available command line options and exit.
- -V, --version
- Output version information and exit.
- -d, --quiet
- No output to stdout at all!
- -d, --debug
- Enable debugging output.
- --libdebug
- Enable debugging code of the unterlying Python X2Go module.
- --libdebug-sftpxfer
- 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.
- --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.
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.
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).
- -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).
- --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.
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).
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.
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 <mike.gabriel@das-netzwerkteam.de>