Como o ssh -X funciona?

6

Quando usar ssh -X , o executável será copiado e executado localmente ou será executado na máquina host. Como ele é chamado de encaminhamento do X11, isso me faz pensar que a janela é desenhada na minha máquina, mas executada no host.

    
por Steve Burdine 17.08.2010 / 15:39

4 respostas

13

O executável é executado na máquina remota e exibido (desenhado) na máquina local. O que ssh -X remote faz é inicializar um servidor proxy X11 na máquina remota. Se você fizer echo $DISPLAY na máquina remota, verá algo como localhost:21.0 . Isso está dizendo ao programa rodando na máquina remota para enviar comandos de desenho para o servidor X11 com o id 21. Isso então encaminha esses comandos para o servidor X11 real rodando na máquina local, que desenha em sua tela. Este encaminhamento acontece através de uma conexão ssh criptografada, então eles não podem ser (facilmente) escutados.

Diferentemente do Windows, Mac OS, etc, o X11 foi projetado desde o início para executar programas em uma rede, sem precisar de áreas de trabalho remotas. Por um tempo, os thin clients X11 eram populares. É basicamente um computador simplificado que só executa um servidor X11. Todos os programas são executados em algum servidor de aplicativos em algum lugar.

    
por 17.08.2010 / 15:52
1

O aplicativo é executado remotamente, exceto os componentes X (ou seja, renderizando os x-commands etc) que estão sendo executados localmente. Cada aplicativo cliente geralmente usa o servidor X local para exibir a interface do usuário. Neste caso, os comandos são enviados através do canal SSH criptografado da máquina remota para a sua máquina local e são exibidos lá.

    
por 17.08.2010 / 15:42
0

Configurar $DISPLAY é apenas metade do negócio. Para poder autenticar os clientes no lado do servidor, ssh também utiliza xauth para criar um novo cookie de autenticação. Veja xauth list e ~/.Xauthority .

    
por 17.08.2010 / 23:01
0

A chave pode ser perceber que o servidor X é uma única coisa que fornece gráficos para um usuário, e todos os diferentes programas que querem gráficos precisam ser clientes X e se conectar a um servidor. A interface entre os programas clientes e o servidor X foi projetada desde o início para suportar conexões com programas remotos, não apenas aqueles na máquina local.

Em uma rede maluca, um programa pode ser executado em qualquer lugar e exibir seus gráficos em qualquer outro lugar ...

    
por 18.08.2010 / 06:09

Tags