A coisa mais simples a fazer (requer quase nenhuma configuração) é apenas usar o SSH para fazer o tunelamento das conexões X. O SSH pode encaminhar a conexão do servidor x do seu computador local ao computador remoto. Dessa forma, você pode executar um programa em um computador remoto, mas exibir suas janelas localmente. O desempenho não é muito bom. Se seus contratados estiverem usando o Windows, eles precisarão fazer o download Putty e Xming . Você também pode encapsular VNC sobre SSH se eles tiverem um cliente VNC, mas o desempenho do VNC é ainda pior.
Se você quiser minimizar o tempo que está pagando aos seus contratados para procurar uma tela de carregamento, provavelmente desejará usar NX . Enquanto o X trabalha remotamente, não é otimizado para redes não LAN. O NX corrige isso usando a compactação e se livrando de chamadas redundantes do Xlib.
Enquanto o cliente NX é gratuito, o servidor NX da NoMachine não é. Felizmente, se você não se importar com um pouco de trabalho, poderá usar o NeatX do servidor NX do Google. O NX usa o tunelamento SSH nos bastidores, por isso é tão seguro quanto o ssh -X. E não requer a configuração de uma VPN.
Se as suas máquinas desktop estiverem atrás de um NAT ou proxy, você precisará usar uma VPN.
Configurar uma VPN é um pouco trabalhoso. Por sorte, acho que a documentação da comunidade do OpenVPN é fácil de seguir.