Apache Guacamole 1.5.0 is an archived release, and was originally released on 2023-02-18. The latest release of Apache Guacamole is 1.5.5.
Apache Guacamole is split into two subprojects: "guacamole-client", the HTML5 web application which serves the Guacamole client to users, and "guacamole-server", the remote desktop proxy which the web application communicates with. The source code for each of these may be downloaded below.
You must verify the integrity of any downloaded files using the OpenPGP signatures we provide with each release. The signatures should be verified against the KEYS file, which contains the OpenPGP keys of Apache Guacamole's Release Managers. Checksums of each released file are also provided.
Filename | Signatures / Hashes |
---|---|
guacamole-client-1.5.0.tar.gz | PGP SHA-256 |
guacamole-server-1.5.0.tar.gz | PGP SHA-256 |
If you do not wish to build Apache Guacamole entirely from source, pre-built versions of the web application (.war) and all extensions are provided here in binary form for convenience. Please note that guacamole-server must still be built and installed from source.
The 1.5.0 release features support for in-browser playback of session recordings, retrieving secrets from key vaults, SSH support for elliptic-curve cryptography (ECC) keys, and support for authenticating against multiple LDAP or Active Directory servers. Users also will now automatically receive notification of users joining a shared connection, including when administrators join an active connection via the “Active Sessions” screen.
For a full list of all changes in this release, please see the changelog.
The 1.5.0 release is compatible with older 1.x components. You should upgrade older components to 1.5.0 when possible, however things should continue to work correctly in the interim:
Regardless of inter-component compatibility, there are changes in 1.5.0 which may affect downstream users of Guacamole’s APIs. Please see the deprecation / compatibility notes section for more information.
Guacamole now supports playback of session recordings directly within the web application. An extension is provided that, if installed, defines a standard location and naming convention for session recordings that allows those recordings to be associated with connection history entries:
Any user with sufficient permissions to see those history entries will then be able to directly open the recording in an in-browser player by clicking a link next to the history entry in the “History” screen of the administration interface:
Secrets for both connection parameters and properties within
guacamole.properties
can now be retrieved from key vaults,
with initial support for Keeper Secrets Manager (KSM).
Leveraging parameter tokens, the administrator can configure connections to
automatically pull secrets like passwords or private keys from the vault
based on the connection’s username, the hostname, or other criteria. Custom
tokens can also be defined for arbitrary secrets in the vault.
As of 1.5.0, users of a connection that is shared with other users will receive a notification when those users join the connection, and will see a counter of the number of other users currently present in the upper-right corner of the display:
This notification and counter displays both users that have joined due to a share link and administrators that have joined by clicking on the connection within the “Active Sessions” screen. Users can at any time hover the mouse over the counter to see which users are currently present:
As long as libssh2 1.9.0 or later is installed, Guacamole supports using
elliptic curve cryptography (ECC) private keys for SSH and SFTP connections,
including keys in OpenSSH format. This support relies on libssh2’s support for
the same capability, so the libssh2 version must be at least 1.9.0. If your
distribution does not provide a libssh2 package that is recent enough, you will
need to either build libssh2 from source or use
the guacamole/guacd
Docker image.
Guacamole can now consider multiple LDAP or Active Directory servers for authentication, attempting to authenticate the user against each defined LDAP server until authentication is successful or no servers remain.
The specific LDAP server that applies can also be narrowed before trying any
servers at all by using username patterns, if part of the username can
reasonably be used to determine this. An example where this might be the case
would be usernames of the form DOMAIN\user
or user@DOMAIN
.
Each 1.x release of Apache Guacamole should be compatible with components of older 1.x releases. This compatibility is intended at the Guacamole protocol level and at the extension level, but not necessarily at the API level. This means:
As of 1.5.0, the following changes have been made which affect compatibility with past releases:
name
added to guac_user_info
structureA new name
member has been added to guac_user_info
to allow
implementations to retrieve the optional human-readable name received during
the connection handshake, affecting the size of this structure.
Additionally, because guac_user_info
forms a part of guac_user
, this change
also affects the memory offsets of members of the guac_user
structure which
follow the info
member, such as data
and various instruction handlers.
Downstream usages of libguac which make use of guac_user
or guac_user_info
will need to be rebuilt to ensure that the structure sizes and memory offsets
used are correct.