Como exibir uma tela X11 de uma máquina remota? (Alternativa para ssh -X)

4

Eu sou localmente em uma máquina sem direitos de root. O encaminhamento de X está desativado.

Remotamente, estou executando um processo em uma máquina sem uma tela, usando o framebuffer Xvfb virtual que simula um servidor X, mas descarta qualquer imagem exibida. Isso funciona razoavelmente bem.

Agora, algumas coisas não estão funcionando e eu preciso depurar, olhando para a tela X. Eu tirei uma captura de tela em Xvfb com xwd -display :99 -root -out /tmp/screenshot.xwdump , mas é bastante complicado olhar para muitos deles em uma sequência.

Existe uma maneira de se conectar do meu cliente ao servidor, e então conectar-se ao framebuffer para exibir localmente a janela X remota?

Este pode ser um segundo canal ssh . O programa X deve, idealmente, continuar funcionando após a desconexão e eu gostaria de poder iniciá-lo antes da segunda conexão, se possível (pense em spice ).

Eu só tenho conexões de saída para o servidor e apenas para a porta 22. Em nenhum dos direitos de root da máquina estão disponíveis.

PS: Essa pergunta é parecida com Executando programas por ssh , mas minha exigência é que nenhum programa pode ser instalado como root no cliente ou servidor, o que parece excluir xpra (a resposta dada lá), a menos que eu encontre uma maneira fácil de usá-lo.

    
por Ned64 05.05.2018 / 18:25

1 resposta

4

xpra é seu amigo: link . Instale xpra no servidor e no cliente.

Iniciar xpra server por ssh com

xpra start-desktop ssh:user@server:XVFBDISPLAY --use-display --start-via-proxy=no

Alternativamente: Se você já está logado no servidor, você pode iniciar o servidor xpra com

xpra start-desktop :XVFBDISPLAY --use-display --start-via-proxy=no

Iniciar xpra no cliente com

xpra attach ssh:server:XVFBDISPLAY

Você pode desanexar e reconectar mais tarde:

xpra detach ssh:server:XVFBDISPLAY

(Substitua XVFBDISPLAY pelo número de exibição de Xvfb .)

    
por 05.05.2018 / 18:46