I'm just going to regurgitate jggimi's advice, you could combine OpenSSH's reverse tunnel functionality along with port forwarding to have clients connect to a central location.
From there you could do X or VNC forwarding, or, just simply issue commands.
|