FYI Apache Guacamole isn't just for remote/cloud servers, it is a self-hosted (on a local server or in the cloud) remote desktop software. It is more similar to TeamViewer, but self-hosted.
It is actually used to connect to other machines, desktop or server alike.