Encaminhamento X11 reverso sem SSH no servidor

3

Eu quero rodar um programa X11 no SERVER e exibir a janela no CLIENTE.

Eu tenho um shell no servidor para começar. (Este não é um shell SSH, mas algum software de computação de cluster) O programa deve de alguma forma ser iniciado a partir deste shell.

Eu tenho acesso SSH e acesso direto ao CLIENTE, no entanto, não consigo SSH do CLIENTE para o SERVER.

Eu quero executar o programa no servidor e abrir a janela no cliente. Como faço isso?

    
por Philipp F 11.06.2015 / 11:15

2 respostas

1

Método do túnel reverso

Você pode SSH de A para B, mas deseja SSH de B para A? Uma solução genérica é criar um túnel SSH reverso . De SERVIDOR:

ssh -f -N -R 4222:localhost:22 CLIENT

Agora você pode usar o SSH para a porta 4222 no CLIENT e efetuar login no servidor. Ative o encaminhamento do X11 nessa conexão.

ssh -p 4222 -X localhost

Método de configuração manual

Como alternativa, você pode configurar o encaminhamento X11 manualmente para a exibição desejada. Se você quiser encaminhar a exibição :20 no CLIENT para exibir :0 no SERVER:

ssh -L 6020:localhost:6000 CLIENT

Os aplicativos só podem usar uma exibição X se eles mostrarem a autorização correta. Isso assume a forma de um “cookie” (valor gerado aleatoriamente que serve como senha). Você precisa recuperar o valor do cookie e executar o comando xauth add :20 MIT-MAGIC-COOKIE-1 … . Consulte Open uma janela em um display X remoto (por que "Não é possível abrir a tela")? . No seu caso, você pode obter o valor do cookie no SERVER, executando o comando xauth list em sua sessão X.

Depois de estabelecer o encaminhamento do TCP e definir o valor do cookie, defina export DISPLAY=:20 e execute seu aplicativo.

    
por 12.06.2015 / 03:03
0

Supondo que você tenha ssh no servidor (ou seja, você pode ssh sair do servidor apenas não para ele), você pode redirecionar a porta do servidor para o seu cliente.

SERVER$ ssh -L6000:127.0.0.1:6000 CLIENT.ip.or.name

Isso encaminhará a porta 6000 local no servidor através do túnel ssh para a porta localhost 6000 .

    
por 11.06.2015 / 12:56

Tags