The release below is from prior to Guacamole's acceptance into the Apache Incubator. It is not an Apache Software Foundation release, and is licensed under the MIT license.

Guacamole 0.9.0

The 0.9.0 release of Guacamole adds support for file transfer under SSH and RDP, support for RemoteApp, and vastly improved error handling. The user interface has also moderately improved.

File Transfer

Support for file transfer over SSH and over RDP is now present. Both must be explicitly enabled on connections which need file transfer. The semantics of file transfer varies by the underlying protocol.

In the case of SSH, file transfer is accomplished over SFTP. Dragging a file into the browser window will transfer that file to the home directory of your user on the SSH server. You can change the destination directory, or initiate a file download, using the “guacctl” utility, included as a part of guacamole-server. The “guacctl” utility is a simple shell script.

In the case of RDP, files dragged into the browser window are uploaded to a virtual drive exposed to the RDP session and persisted on the Guacamole server. You can initiate the download of a file by dragging it into the special “Download” folder located in the root directory of this virtual drive.


RemoteApp is a feature of RDP which allows individual applications to be exposed without also exposing the entire desktop. As of Guacamole 0.9.0, support for RemoteApp within RDP can be enabled, and must be configured at the connection level.

Public key authentication

Support for authenticating with SSH servers using a private key is now possible within Guacamole. The entire private key must be given in the connection settings in OpenSSH format. If the private key is protected by a passphrase, you can either specify that passphrase in the connection settings, or enter it when prompted during connection.

Improved error handling

The old counter-intuitive and generic error messages from past releases of Guacamole have been replaced with a brand new error handling system. Each error has a corresponding paragraph presented to the user which described the problem and a possible resolution, along with a “reconnect” button. If reconnecting is likely to solve the problem, such as disconnection due to network failures, a countdown until automatic reconnect is also provided.