ssh tunneling explanation

7

Eu tenho uma pergunta sobre o tunelamento ssh. Eu li este artigo

Eu gostaria de fazer o trabalho de encaminhamento do X e executar alguns aplicativos X em casa e exibi-los em um sistema remoto:

 ssh -X -R 5555:localhost:22 [email protected] -N

No controle remoto:

 ssh -X -p 5555 [email protected]

Então, em casa:

 //configure sshd to listen on 5555
 ssh [email protected]
 //here run some app

Deveria funcionar?

    
por wawa235 17.08.2013 / 12:49

2 respostas

8

Eu desenhei alguns esboços

A máquina em que o comando ssh tunnel é digitado chama-se »seu host« .

Introdução

  1. local: -L Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.

    ssh -L sourcePort:forwardToHost:onPort connectToHost significa: conecte-se com ssh a connectToHost e encaminhe todas as tentativas de conexão para o local sourcePort para a porta onPort na máquina chamada forwardToHost , que pode ser alcançado a partir da máquina connectToHost .

  2. remoto: -R Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.

    ssh -R sourcePort:forwardToHost:onPort connectToHost significa: conecte-se com ssh a connectToHost e encaminhe todas as tentativas de conexão para o remoto sourcePort para a porta onPort na máquina chamada forwardToHost , que pode ser alcançado a partir de sua máquina local.

Seu exemplo

Bem, se você quiser apenas fazer o trabalho de encaminhamento do X, ou seja, executar alguns aplicativos X no computador em casa e exibi-los em um sistema remoto (vamos chamá-lo de computador de trabalho, porque ele pode estar no seu local de trabalho) então você possivelmente não precisa de um túnel ssh.

Iniciar aplicativos X sem túnel

Você pode simplesmente ssh do computador de trabalho para o seu computador de casa? Se assim for, quando estiver sentado no computador de trabalho e quiser iniciar uma aplicação X que é executada no seu computador de casa mas aparece no seu computador de trabalho , você tem que digitar (no computador de trabalho):

ssh -X homeuser @ homecomputador firefox

Isso iniciará o Firefox em seu computador doméstico e o exibirá na máquina em que você digitou este comando, por exemplo, seu computador de trabalho.

Computador oculto precisa de túnel

Este é o número da imagem 3 dos meus esboços. Muitas vezes o computador doméstico não pode ser acessado diretamente da Internet, porque ele está atrás de um firewall ou está oculto por meio de NAT (de um roteador). Então você pode usar um túnel.

No seu computador de casa azul ( yourhost ) você digita:

ssh -R 5555:localhost:22 remoteuser@remotehost

em que 5555 é a porta verde e 22 é a porta cor-de-rosa da imagem.

Se você estiver no trabalho, no remotehost e se conectar à porta verde 5555 , sua conexão será encapsulada / encaminhada para a porta cor-de-rosa do seu computador doméstico localhost (ou seja, seu azul computador próprio em casa). Agora você tem que digitar no seu computador de trabalho:

ssh -X -p 5555 homeuser@localhost firefox

que iniciará o firefox em seu computador doméstico ( yourhost ) e o exibirá na máquina em que você digitou esse comando, por exemplo seu computador de trabalho ( remotehost ).

    
por 14.03.2014 / 17:03
1

Você precisa especificar o display remoto que deseja encaminhar. No controle remoto:

DISPLAY=:0 ssh -X -p 5555 user@localhost # not sure why you used 192.168.1.2

Para encaminhar a exibição :0 .

Então, nesse shell (agora em execução na sua máquina doméstica), execute:

echo "$DISPLAY"

para descobrir qual é a exibição encaminhada. Isso será algo como localhost:10 , o que significa que você precisa fazer uma conexão TCP na porta 6010 para se conectar à exibição :0 na máquina remota ( :0 significa conectar a algum soquete de domínio Unix em algo como /tmp/.X11-unix )

Em seguida, para que um aplicativo em sua máquina seja exibido na tela do servidor remoto, é só uma questão de dizer a eles para usar localhost:10 :

DISPLAY=localhost:10 xlogo

por exemplo.

Note que esse é um túnel sobre um túnel.

    
por 17.08.2013 / 21:59