Se você só precisa se conectar ao monitor X que está sendo executado remotamente e iniciar seu programa, então é apenas um problema de autorização que você tem. Agora, depende de como a autorização está configurada.
Uma maneira é usar xhost e conceder permissões por IP, mas isso é altamente inseguro, porque qualquer programa em execução nesta máquina (ou qualquer máquina, se você usar apenas +), pode se conectar automaticamente ao servidor de dislay do X.
A maneira comum é usar o arquivo de autoridade X. Então você só precisa conhecer esse arquivo e ter acesso a ele. Agora, isso depende da distribuição, se esse arquivo for .Xauthority em seu diretório inicial ou algum arquivo temporário for configurado toda vez que você iniciar a sessão X.
No primeiro caso, tudo funciona fora da caixa, no último caso, você precisa saber esse nome de arquivo temporário. Uma maneira de descobrir isso é olhar para a variável XAUTHORITY no ambiente de algum programa (como o gerenciador de janelas) já em execução no seu servidor X. Você pode obter facilmente variáveis de ambiente a partir do arquivo / proc / PID / environ assim:
cat /proc/12345/environ | xargs -0 -L 1 echo | grep XAUTHORITY
Em seguida, basta exportar variáveis XAUTHORITY e DISPLAY para o seu shell e iniciar seu programa