Encaminhando o X11 com um salto sem o X-server instalado

1

problema

Eu quero rodar aplicativos X remotamente em uma máquina C do meu cliente A. A única maneira de se conectar a esta máquina é usando a máquina B (firewall) como um salto:

A - > B - > C

Até agora, o ssh simples funciona como esperado, mas não consigo fazer o encaminhamento do X11 para execução.

Encontrei algumas perguntas semelhantes, mas acho que todas elas assumem que o X11 está sendo executado em B. Soluções como Como habilitar o encaminhamento SSH X11 através de servidor adicional? parece não estar funcionando com a minha configuração.

Será que você precisa ter um X-server rodando em B para encaminhar o X11 de C para B e B para A?

configuração

Eu configurei meu ~. / ssh / ssh_config em A de acordo com este artigo: link

Quando tento conectar e encaminhar o X11 de C usando

$A: ssh -X C

Eu me conecto de C a B, mas sem o encaminhamento do X11 (embora ativado em B e C):

$C: echo $DISPLAY

$C: glxgears 
Error: couldn't open display (null)

máquinas usadas

  • A: Arch Linux 3.13.7-1-ARCH notebook executando o X-server / gnome
  • B: Debian 6 Linux 2.6.32-5-amd64 pc no X-server instalado / em execução
  • C: OpenSuse 13.1 3.11.10-7-pc desktop executando o X-server / gnome

conclusão

Não tenho certeza se o problema existe por causa da minha configuração / configuração ou isso não seria palavra em geral ... Eu apreciaria se alguém com problema / experiência semelhante pudesse me ajudar!

    
por christophwu 29.03.2014 / 15:20

3 respostas

1

Não acredito que o encaminhamento do X11 funcione no cenário de vários saltos descrito.

No entanto, se você estabelecer primeiro uma conexão ssh A- > B com o encaminhamento de porta para C: 22 e, em seguida, conecte-se a C com o encaminhamento X11 através da conexão 'direta' estabelecida que deve funcionar bem.

Algo como o seguinte:

A $ ssh -L2200:C:22 -N B (possivelmente colocando isso em segundo plano)

seguido por:

A $ ssh -X -p2200 localhost

    
por 29.03.2014 / 17:42
0

Se você estiver usando um ProxyCommand, não use -X para o ProxyCommand. O ProxyCommand deve deixar todos os recursos avançados desabilitados, você só precisa do mínimo para o ProxyCommand.

Ao usar um ProxyCommand para ssh de A para B e conectar à porta 22 em C usando nc, o cliente ssh em A estará se comunicando com o servidor ssh em C. A implicação disso é que nada que aconteça em B pode afeta quais recursos você pode usar entre A e C. Seria impossível para B ter alguma influência, uma vez que a comunicação é criptografada quando passa por B.

A explicação de por que o redirecionamento do X11 não está funcionando para você deve ser encontrada em A ou C. O comando que você digitou em A parece correto para mim, então restam duas explicações, que eu posso imaginar:

  1. Você não tinha uma variável DISPLAY no shell, onde você digitou o comando ssh.
  2. O servidor ssh em C está configurado para não permitir o encaminhamento do X11. Você precisa do "X11Forwarding yes" no sshd_config em C, senão não funcionará.
por 29.03.2014 / 21:29
0

Em uma linha de configuração multihop que, com o encaminhamento do X11, você precisa do xauth em cada máquina. Esse é o único aplicativo X11 que você precisa na máquina B. A máquina A é a única máquina que precisa de um servidor X. A máquina C, obviamente, precisa de seus aplicativos X11, mas não precisa de um servidor X. Em teoria, você poderia até fazer isso sem aplicativos X11 na Máquina A.

    
por 01.07.2015 / 04:31