# Guacamole Apache Guacamole is a clientless remote desktop gateway. It supports standard protocols like VNC, RDP, and SSH. Home: [https://guacamole.apache.org/](https://guacamole.apache.org/) - **Access your computers from anywhere** Because the Guacamole client is an HTML5 web application, use of your computers is not tied to any one device or location. As long as you have access to a web browser, you have access to your machines. - **Keep your desktop in the cloud** Desktops accessed through Guacamole need not physically exist. With both Guacamole and a desktop operating system hosted in the cloud, you can combine the convenience of Guacamole with the resilience and flexibility of cloud computing. - **Free and open source** Apache Guacamole is and will always be free and open source software. It is licensed under the Apache License, Version 2.0, and is actively maintained by a community of developers that use Guacamole to access their own development environments. We feel this sets us apart from other remote desktop solutions, and gives us a distinct advantage. - **Built on a well-documented API** Apache Guacamole is built on its own stack of core APIs which are thoroughly documented, including basic tutorials and conceptual overviews in the online manual. These APIs allow Guacamole to be tightly integrated into other applications, whether they be open source or proprietary. #### Installation ##### With Docker docker-compose.yml: ```YAML version: "3" services: guacamole: image: jwetzell/guacamole container_name: guacamole volumes: - ./postgres:/config ports: - 8880:8080 volumes: postgres: driver: local ``` Login with the default credentials of: - username: guacadmin - password: guacadmin More available extensions: - auth-ldap - [LDAP Authentication](https://guacamole.apache.org/doc/gug/ldap-auth.html) - auth-duo - [Duo two-factor authentication](https://guacamole.apache.org/doc/gug/duo-auth.html) - auth-header - [HTTP header authentication](https://guacamole.apache.org/doc/gug/header-auth.html) - auth-cas - [CAS Authentication](https://guacamole.apache.org/doc/gug/cas-auth.html) - auth-openid - [OpenID Connect authentication](https://guacamole.apache.org/doc/gug/openid-auth.html) - auth-totp - [TOTP two-factor authentication](https://guacamole.apache.org/doc/gug/totp-auth.html) - auth-quickconnect - [Ad-hoc connections extension](https://guacamole.apache.org/doc/gug/adhoc-connections.html) Usage: ```shell docker run \ -p 8080:8080 \ -v :/config \ -e "EXTENSIONS=auth-ldap,auth-duo" \ jwetzell/guacamole ``` #### Authentications ##### Google two-factor With docker-compose ```YAML version: "3" services: guacamole: ... environment: - EXTENSIONS=auth-totp ... ``` #### SSH SSH-Key Authentication ```shell # Generate the private key and public key

# NOTE: -m PEM is required for Guacamole

ssh-keygen -t rsa -b 4096 -f ~/.ssh/root@guacamole -C "root@guacamole" -m PEM ``` #### 複製與貼上 預設環境遠端主機的文字可以複製,然後在本地端作貼上;不過,本地端文字無法複製後在遠端主機作貼上,解決方法如下: 在遠端主機的畫面,按下 Ctrl + Alt + Shift,會彈出 Guacamole 選單,將本地端文字貼在選單裡的 Clipboard,回到遠端主機,直接執行貼上即可。 #### Learning - [Access Your Computer From Anywhere Via Web Browser using Apache Guacamole](https://ostechnix.com/apache-guacamole-access-computer-anywhere-via-web-browser/) - [Install and Use Guacamole Remote Desktop on CentOS 8](https://www.howtoforge.com/install-and-use-guacamole-remote-desktop-on-centos-8/) - \[Video\] [Guacamole Remote Desktop - Open Source, Self Hosted remote access to your machines in the browser!](https://www.youtube.com/watch?v=DGw6P5Lkj-U) - \[Video\] [Meet Guacamole, Your Remote Access Gateway](https://www.youtube.com/watch?v=LWdxhZyHT_8) - \[Video\] [Securely Access any PC or VM Remotely using only a Web Browser with Guacamole](https://www.youtube.com/watch?v=TTFB2XEQQUU)