X2go is a (relatively new) and completely free client/server solution for remote access to graphical desktops. In its basic form, it provides a GUI around VNC server and viewer, including setting up the SSH tunnel for secure remote access, but it has more possibilities, including:
Also, x2go will check when connecting, if you already have a session open on the target machine, and offer to re-use the existing session in stead of starting a new one.
See also: http://www.x2go.org
It is possible to open your existing X session, running on the computer screen, for remote access through X2go. This is called
desktop sharing in X2go.
To enable this, run (on your desktop) the X2go Desktop Sharing app, available from the menu, or as
x2godesktopsharing. This creates a panel icon that can be used to enable (and disable) sharing your desktop.
On the remote machine, set up the connection with
Connect to local desktop as the session type.
Note that when working in a shared session, whatever happens in your x2go viewer, happens on the real desktop as well, so if you log out in the viewer, you are actually logged out completely. (And: if you chose to shutdown the computer, it would actually shut down; however, this action should normally not be available)
Most of the known VNC desktop issues will apply to x2go as well: the graphics emulation in the virtual desktop doesn't include 3D or accellerated graphics, which are used a lot in modern desktops. Please limit yourself to the simpler desktops: LXDE, XFCE and OpenBox.
Also, remember that a vnc or x2go session stays active even when no viewer is open. So it is easily possible to run out of memory or slow down your desktop when too many programs are open.
First of all, X2GO stores the saved passwordin a format that is easily decrypted if someone gets hold of your laptop or the files.
A second more practical problem: with two-factor authentication, X2GO will keep re-using the stored password and prompt again for the 6 digit code when there is a login failure. This will soon trigger the ban-list on the target computer due to too many subsequent login failures.