tunelamento ssh através de ssh

0

Eu tenho uma situação onde eu tenho uma máquina virtual do Windows 10 em execução no VirtualBox no meu desktop linux. Esta máquina virtual (e no momento apenas esta máquina virtual) pode estabelecer um túnel VPN para um escritório remoto.

Atualmente eu tenho um pequeno pi de framboesa - que está atualmente na minha rede local que eu regularmente ssh em meu desktop linux, e que eu também posso, uma vez ssh'ed em pode ssh do pi de volta ao meu desktop linux para puxar de um repositório git. Eu também posso ssh da minha máquina windows no pi (usando git bash).

O que isto implica é que o linux e o pi rodam o sshd, mas o windows não

Em breve, vou mover o pi para este escritório remoto, e gostaria de configurar uma situação em que eu possa ssh de e para o pi neste local e no meu desktop linux.

Então, meu pensamento foi configurar um túnel ssh usando o cliente windows. Então, como um experimento ainda todo no meu ambiente local na máquina windows eu fiz

ssh -L 9001:pi:22 pi@pi (para este exemplo, pi também é o usuário local no pi). Eu assumi que isso iria encaminhar o tráfego da porta 9001 para o servidor sshd no pi.

Em seguida, na minha área de trabalho do linux eu fiz ssh -l pi -p 9001 win na expectativa de que agora eu iria ssh no pi.

Mas acabou de pendurar.

O que estou fazendo de errado?

    
por akc42 25.02.2016 / 21:09

2 respostas

1

Você consegue fazer ssh -l pi -p 9001 win da sua caixa do Windows? E se você tentar ssh -l pi -p 9001 127.0.0.1 ?

Se você puder fazer o último mas não puder fazer o mesmo a partir da caixa linux, o problema pode ser que você esteja ouvindo na porta 9001 apenas no lado local. Por favor, olhe a man page do ssh, especificamente a descrição de -L [bind_address:]port:host:hostport . Para ouvir a porta 9001 também no lado público, você pode configurar seu túnel da seguinte forma: ssh -L *:9001:pi:22 pi@pi .

    
por 28.02.2016 / 16:20
0

Se eu ler corretamente, você deseja SSH do host A para o host C por meio de um daemon SSH em execução no host B?

Isso pode ser feito com um pouco de mágica no arquivo .ssh/config no host A:

Host hostc
   HostName hostb
   ProxyCommand ssh username@hostc nc %h %p 2>/dev/null

Com esta sub-rotina em seu .ssh/config no host A, você pode ssh hostc e você será intermediado por proxy através de uma conexão no host B.

Se o host A for sua caixa do Windows, o cliente openSSH da cygwin poderá fazer isso; Eu não estou ciente de como replicar isso em e. g. Massa.

    
por 25.02.2016 / 21:25