Today, we are going to learn how to enable RDP/SSH file transfer over guacamole. Before you can proceed, ensure that you have Guacamole up and running. You can check our previous guides on setting up Guacamole on Ubuntu 18.04, Debian 9.8 and Fedora 29 by following the links below;
- How to Install and Configure Guacamole on Fedora 29
- How to Install and Setup Guacamole on Debian 9.8
- How to Setup Guacamole Web-based Remote Desktop Access Tool on Ubuntu 18.04
How to Enable RDP/SSH File Transfer Over Guacamole
With Guacamole, it is possible to transfer files between the remote systems and the local systems. Currently file transfer is supported for VNC, RDP, and SSH, using either the native file transfer support of the protocol or SFTP.
You can transfer files either by dragging and dropping or by using the upload button on the Guacamole menu.
Transfer Files over SSH using SFTP protocol
In order to enable file transfer over SSH on Guacamole using SFTP protocol, you need to edit the /etc/guacamole/user-mapping.xml
and set the value of the enable-sftp
parameter to true
for the SSH connection.
vim /etc/guacamole/user-mapping.xml
... <!-- First authorized connection --> <connection name="Ubuntu-Server"> <protocol>ssh</protocol> <param name="hostname">192.168.43.3</param> <param name="port">22</param> <param name="username">amos</param> <param name="enable-sftp">true</param> </connection> ...
Once you have made the changes, restart Tomcat and Guacamole daemon to effect.
systemctl restart tomcat8 systemctl restart guacd
Note that you can only transfer files to the directory on which you have write permissions.
Navigate to the Guacamole web interface and initiate an SSH connection to the remote server to transfer files to. Once you have logged in to the remote server, press Ctrl+Shift+Alt
to open the Guacamole settings window.
Next, click the device button to select the destination folder to upload the files to.
Click on the Upload Files
button on the top of the settings window to upload the files. The file transfer progress is shown on the bottom left of the window.
Next, close the Settings window by pressing Ctrl+Shift+Alt
and run ls
on the remote upload directory to list the available files. You can also drag and drop the file to and from the server.
Transfer Files over RDP on Guacamole
Since file transfer is disabled by default, you need to need to define the enable-drive
and drive-path
parameters on the /etc/guacamole/user-mapping.xml
configuration file to enable it. enable-drive
enables file transfer feature while drive-path
defines the directory in which transferred files will be stored.
vim /etc/guacamole/user-mapping.xml
<connection name="Windows 7"> <protocol>rdp</protocol> <param name="hostname">192.168.100.86</param> <param name="port">3389</param> <param name="enable-drive">true</param> <param name="drive-path">/shared-folder</param> </connection>
Ensure that the path specified by the drive-path parameter must exist on the Guacamole server and accessible by guacd, readable and writable by the user that runs guacd. Note that this does not refer to a directory on the RDP server.
Next, check if the guacdr-client.so
library object is available on the /usr/lib/x86_64-linux-gnu/freerdp
directory.
If the directory neither does the guacdr-client.so
library exits, create the directory and make a symbolic of the guacdr-client.so
library object from /usr/local/lib/freerdp/guacdr-client.so
as shown below;
mkdir -p /usr/lib/x86_64-linux-gnu/freerdp ln -s /usr/local/lib/freerdp/guacdr-client.so /usr/lib/x86_64-linux-gnu/freerdp
Once that is done, restart tomcat and guacd.
systemctl restart tomcat8 systemctl restart guacd
This will automatically create a virtual drive from which users can transfer files to and from. This virtual drive will appear as a network drive within the RDP session. Files uploaded and downloaded will be preserved within this drive, even after disconnecting.
Login to Guacamole Web dashboard and initiate a connection to your Windows system. Once you are logged in, you should be able to see an RDP virtual drive created.
To transfer files to the remote, use the upload button on the Guacamole settings window that you can launch by pressing Ctrl+Shift+Alt
. The file will automatically put the file on the RDP virtual drive on the remote system.
To Download the files from the remote system, just place the files on the Download
folder on the RDP virtual drive. This will automatically prompt you to save the file on your local system.
You can always check either syslog or Tomcat logs for any error messages, just in case.
That is all about how to enable RDP/SSH file transfer over Guacamole. You can learn more about Guacamole file transfer here. Enjoy
Hi just a suggestion.. a very great guide could be : how to install audio in Centos7.7 with XRDP. the pulseaudio just don’t work at all and quite hard to get it..
as a possible article.
Thanks again
Hello,
Do you know what must I do on Guacamole 1.2.0 and freerdp2?
Great article, helped a lot! Thank you.
guacdr-client.so file is not present on rehl8 server. Do you know how to enable this on server and initiate the copy paste logic on windows server?
Please help me.