SSH Tunnel para área de trabalho remota via servidor intermediário

1

Eu vi muitos exemplos de túneis SSH nas redes, mas ainda não tenho sorte com isso. Aqui está a configuração:

  1. PC com Windows 7 em uma rede privada, sentado atrás de um firewall, com o servidor SSH PowerShellInsider configurado e funcionando bem.
  2. Servidor Linux de acesso público, que tem acesso ao PC.
  3. Windows 7 laptop, em casa, do qual desejo fazer o desktop remoto no PC.

Agora, aqui está o que eu tentei até agora:

  1. Túnel SSH do meu laptop para o servidor Linux: ssh -f my_user @ LINUX_SERVER -L 6666: LINUX_SERVER_IP: 6666 -N
  2. SSH para o servidor Linux em que configurei um túnel para o PC: ssh -f 'PRIVATE_DOMAIN \ my_user' @ PC_NAME -L 6666: PC_IP: 3389 -N

Infelizmente, devo estar fazendo algo errado, porque parece que não funciona. Alguma idéia por que ou, pelo menos, alguma sugestão sobre como posso tentar depurar esta configuração? No momento, eu tenho acesso a todas as 3 máquinas (non-root no Linux), então eu posso testar o que eu quiser ...

    
por Mihai Todor 10.06.2012 / 17:07

2 respostas

2

Isto é o que eu faço quando tenho um problema muito similar (mas o meu é Linux via Linux e eu uso a porta 5901 para VNC):

Primeiro, fazemos com que todas as conexões para localhost:13389 em seu laptop passem para o servidor intermediário (na porta 3389):

laptop$ ssh -L 13389:localhost:3389 my_user@LINUX_SERVER_IP

Em seguida, fazemos com que toda a conexão com localhost:3389 no servidor intermediário seja encaminhada ao PC por trás do firewall (na porta 3389):

my_user@LINUX_SERVER_IP$ ssh -L 3389:localhost:3389 'PRIVATE_DOMAIN\my_user'@PC_NAME

(note que este comando é executado dentro do shell interativo no servidor intermediário).

Agora, você deve poder se conectar a localhost:13389 e acessar a porta 3389 no PC remoto.

Depuração

Como não está funcionando, há algumas coisas que podemos tentar. Faremos de maneira a isolar onde o problema está:

  1. No PC remoto que você deseja acessar, você pode telnet localhost 3389 para garantir que ele esteja aberto e pronto para conexões? A Microsoft tem um bom artigo sobre ele
  2. Se isso funcionar, você pode tentar executar telnet localhost 3389 no servidor intermediário para verificar se está encaminhando corretamente para o PC remoto?
  3. Finalmente, telnet localhost 13389 no seu laptop, para ver se ele está sendo encaminhado até o final.

Assim que você encontrar um erro, pare por aí e adicione um comentário para que possamos descobrir.

    
por 10.06.2012 / 17:17
0

Eu acho que você está usando a sintaxe incorreta com o comando ssh .

Como você tem o servidor SSH PowerShellInsider em execução na máquina com o Windows 7, presumo que você deseja alcançar o servidor SSH pelo túnel, certo?

De qualquer forma, supondo que o servidor SSH esteja sendo executado na porta padrão, o comando a ser executado em seu computador doméstico deve ser algo assim:

$ ssh -N -L 22222:ip-address-windows7-at-work:22 user@linux-server

Em seguida, ssh no Windows 7 remoto usando o soquete local (22222):

$ ssh localhost:22222

Se você estiver tentando encapsular o protocolo de área de trabalho remota, só precisará alterar o número de porta "correto":

$ ssh -N -L 22222:ip_address_windows7_work:3389 user@linux-server
    
por 16.07.2012 / 19:11