Como faço o SSH túnel usando PuTTY ou SecureCRT através de gateway / proxy para o servidor de desenvolvimento?

1

Nós temos algumas configurações de caixas unix de forma que para chegar à caixa de desenvolvimento via ssh, você tem que usar ssh em uma caixa 'user @ jumpoff' primeiro. Não há conexão direta permitida em 'dev' via ssh de qualquer lugar, exceto 'jumpoff'. Além disso, somente a troca de chaves é permitida em ambos os servidores. E você sempre faz login na caixa de desenvolvimento como 'build @ dev'.

É doloroso sempre fazer isso pulando. Eu sei que isso pode ser feito com o SOCKS ou um túnel ou algo assim ...

Eu configurei uma VM do FreeBSD e posso fazer com que as coisas funcionem muito bem usando ferramentas ssh do unix. Basicamente, tudo que eu faço é ter certeza de que a tecla ~ / .ssh / id_rsa.pub do meu vm está no jumpoff e no dev e use este arquivo ~ / .ssh / config:

# Development Server
Host            ext-dev  # this must be a resolvable name for "dev" from Jumpoff
Hostname        1.2.3.4
User            build
IdentityFile    ~/.ssh/id_rsa  

# The Jumpoff Server
Host            ext 
Hostname        1.1.1.1
User            daevid
Port            22 
IdentityFile    ~/.ssh/id_rsa

# This must come below all of the above 
Host            ext-* 
ProxyCommand    ssh ext nc $(echo '%h'|cut -d- -f2-) 22 

Então eu simplesmente simplesmente teco "ssh ext-dev" e eu sou como Flynn.

O problema é que não consigo fazer com que a mesma coisa funcione usando PuTTY ou SecureCRT - e, para ser honesto, não encontrei nenhum tutorial que realmente me acompanhasse. Eu vejo muitos sobre a criação de algum tipo de túnel proxy para o Firefox, mas não parece ser o mesmo conceito. Eu estive mexendo com várias tentativas e erros a maior parte do dia e nada funcionou (obviamente) e estou no fim do meu conhecimento ssh e pesquisa no Google.

Encontrei este link que parecia perfeito, mas não funciona para mim. O "mestre" se conecta bem, mas a parte "cliente" não se conecta. Diz-me, o sistema remoto recusou a conexão. link

Eu tenho a VM, PuTTY e SecureCRT todos usando os mesmos pares de chaves públicas / privadas para tornar as coisas consistentes e fáceis de depurar.

Alguém tem um exemplo direto de como fazer isso no Windows?

    
por DAE51D 30.03.2011 / 05:14

4 respostas

2

Com o PuTTY, certifique-se de ter "encaminhamento de agentes" ativado e sua chave privada carregada no Pageant.

    
por 30.03.2011 / 11:08
2

Parece que a versão 0.59 e posterior do PuTTY suporta a sintaxe semelhante a ProxyCommand; veja, por exemplo, esta postagem no blog . Você provavelmente não quer usar o SOCKS. Você quer ter cuidado em ter senhas strongs para suas chaves; Não está claro a partir do seu exemplo do OpenSSH se você tem alguma frase secreta em sua chave ou se está usando ssh-agent ou algo parecido.

    
por 30.03.2011 / 07:18
2

Usando uma versão bastante recente do SecureCRT (eu estou executando 7.3.7 para este exemplo), aqui está como você faz isso:

1.) Configure uma nova conexão com seu servidor de jump-off (ext) com o endereço IP 1.1.1.1, conforme mostrado no seu exemplo. Dê um nome à conexão, "Jump-off server", e salve-a na pasta Sessions.

2.) Teste que você pode se conectar ao servidor de salto conforme desejado. Você indicou que somente o acesso com uma chave SSH é possível: Você pode querer importar essa chave usando a funcionalidade ssh-agent (use o menu "Ferramentas" > "Gerenciar chaves de agente ..." > "Adicionar ..." ) se você quiser digitar sua senha apenas uma vez.

3.) Configure uma nova conexão para sua caixa de desenvolvimento. Como na etapa 1.), use o endereço IP correto - 1.2.3.4, conforme fornecido em seu exemplo - e nomeie-o como "Caixa de desenvolvimento". Salve esta sessão na sua pasta Sessões. Teste esta conexão: deve falhar neste ponto, porque você está se conectando diretamente. Feche a janela.

Agora você tem as informações cruas necessárias, mas uma etapa extra é necessária para associar a caixa de jumpers, já que a conexão precisa passar por "Jump-off box" para se conectar a "Development box".

4.) Clique com o botão direito do mouse na conexão "Development box" na sua pasta Sessions e selecione "Properties". Vá para "Conexão" - > "SSH2" e clique na opção suspensa "Firewall:". Clique em "Selecionar sessão ..." e escolha "Servidor de salto" no menu Sessões e clique em "OK" para aceitar o valor e depois em "OK" novamente para sair do menu de propriedades.

Agora, isso associa sua caixa de seleção a sua caixa de desenvolvimento, por isso ela é usada como um intermediário ao tentar estabelecer uma conexão com sua caixa de desenvolvimento. Funciona mesmo se você tiver uma porta SSH diferente em uso na sua caixa de seleção (por exemplo, 65000) em relação à sua caixa de desenvolvimento (por exemplo, 22), porque o SecureCRT simplesmente usará a configuração que você configurou para cada host.

Tente novamente a conexão "Caixa de desenvolvimento", com ou sem uma conexão de "Caixa de seleção" aberta, e você deverá encontrá-la funcionando da maneira desejada.

    
por 26.07.2016 / 15:23
1

Para aqueles que estão interessados em fazer isso com o SecureCRT, aqui está:

  1. Crie uma sessão SSH como de costume.

  2. Nas propriedades, selecione Port Forwarding e clique em Add ..., verifique a opção "Dynamic forwarding using SOCKS 4 or 5", preencha o endereço local e a porta de acordo.

  3. Feito. A partir de agora, cada vez que você executar ssh com esta configuração de sessão, um túnel é criado automaticamente, quando você se desconecta, o túnel desaparece. Praticamente o mesmo que em uma caixa Linux.

Aproveite!

    
por 13.12.2012 / 08:23