the protocol you are looking for, would be VNC for a platform-independent solution.
- for *nix-environments XoverSSH or X2Go may be a better choice and for a CLI only, SSH is the way to go.
- maybe for windows RDP is also a better choice.
but VNC has a big advantage for your use-case:
it features a "reverse connection" to work around a port-forwarding for the server (the machine which should be controlled).
basically Gitso is a nice idea to simplify the process, have one GUI for both sides and the help seeking person needs just to enter the ip/address of the supporter.
as you can see it is also multi-platform available, BUT it is inactive for years now (although there are some forks at github, to mention the most interesting: https://github.com/rastersoft/Gitso).
additional there are some issues i experienced, like incorrect display under linux (at least with some other client), connection-errors under windows10 and other shortcomings like unencrypted transfer, etc.
so i decided to use up-to-date and supported software with which i also can control things much better and use all the settings i want to:
as viewer (for linux as asked) i use and would suggest Remmina:
- it features a bunch of protocols (beside VNCi) via plugins
- has nice features for managing connections and much more...
as linux-server i use x11vnc:
it's like the Swiss Army knife of VNC-servers... to just name a few features:
- it has a GUI and a even more powerful CLI
- it uses the current display but also can create a new one
- connections can be encrypted via SSL or also tunneling via SSH is possible
- it supports authentication for example also via unix-passwords
- and much more... i highly recommend to read the man-page!
as windows-server i guess UltraVNC:
- it looks like it's features can compete with x11vnc...
- and the most important with it's SingleClick-feature you can create an easy to use reverseVNC-version.
- there is even a walkthrough for creating your own branded UltraVNC SingleClick: https://www.uvnc.com/docs/uvnc-sc.html
as mac-server i have no clue what to use...
if anyone knows a good one with support for reverse VNC, please leave a comment or add it. thanks!
i would suggest to use a DDNS-service for your IP, so the tech-unsavvy user doesn't have to change anything. - if not, he has to enter your current ip-adress (which you have to tell him every time), and this can be from server to server more or less complicated...
since we are turning the server-/client-system a bit upside down with reverse VNC, you have to setup a port-forwarding to your machine with the client.
you have to start your "client" first to get it into a kind of listening mode...
and then finally the help seeking person starts his reverse VNC server... and your client will switch from it's listening mode to the usual remote view/control.
the settings and the start of the server can or even must - since we are talking about different programs - be done in several ways...
- x11vnc: i don't like the GUI (and guess for really tech-unsavvy users it won't be a pleasure to use) so i switched to the CLI... and now you can do everything you want!
either simply copy&paste the one-liner, paste it into a little script which the help seeking person just has to start or for the perfectionists "hide" the script and create a launcher which transfers the look and handling into an usual program. --> either way, voila: one click/enter for the user.
- UltraVNC: somehow you can create your own SingleClick.exe with all settings preset, that the help seeking person just has to start (even no installing required). --> sorry that i can't go into details for UltraVNC but i haven't used it for ages... my noobs and i are happy with linux, so no more need for windows-specials. ;-)