Proxy de meias multi-hop, como?

5

Estou começando de a sugestão para usar o jvisualVM via SOCKS . No entanto, tenho uma topologia um pouco complexa.

A partir do meu laptop, tenho dois hosts intermediários para acessar a máquina que desejo observar.

LaptopAtHome - > HostAtWork - > Bastião da AWS - > ThingToObserve

Eu posso usar o ssh-add para lidar com as chaves necessárias para criar esses saltos. Não devo deixar nenhuma chave particular do SSH no AWS-Bastion. Como configuro tudo isso para que:

ssh -v -D 9696 thingtobserve.example.com

abre o buraco de minhoca do meu laptop para o outro lado?

Observe também que preciso usar uma chave privada diferente para o primeiro salto do que para o segundo e o terceiro. Eu tenho ambas as chaves carregadas no host inicial com ssh-add.

Algumas pesquisas me levaram a tentar:

#!/bin/sh

noknown="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"

ssh -A -t -t -v -L9999:localhost:9932 first ssh -A $noknown -t ec2-user@bastion ssh -A $noknown -t -D 9932 ec2-user@target

isso falha com 'permissão negada'.

Eu tentei um primeiro passo simples:

ssh -t -v -A first ssh -A -t -v $noknown ec2-user@bastion

e o log mostra que as chaves extras do agente não estão sendo apresentadas para 'bastion'. ssh -L mostra-os no meu ponto de partida.

EDITAR

Acontece que parte do problema aqui é que um dos hosts no meu escritório que eu estava tentando usar como o destino do primeiro salto tem algum problema misterioso. Se eu mudar para outro, posso obter um shell muito bem, todo o caminho. O que eu não consigo é um proxy de meias.

Um comentário sobre a questão sugere que o proxy de meias multi-hopping é, na verdade, conceitualmente difícil, e essa é a verdadeira questão dessa questão.

EDIT 2

esta página faz uma afirmação sobre meias multi-hop, mas parece-me como se pode haver um erro de digitação nos números das portas; Estou experimentando.

    
por bmargulies 17.01.2016 / 22:25

2 respostas

1

Eu não tentaria usar o proxy multihop, mas usando o host intermediário como um retransmissor SSH para acessar o bastião. A partir daí você pode configurar seu proxy SOCKS.

Configurar o acesso ao host no trabalho

Primeiro, configure o acesso a host-at-work :

Host host-at-work
User myself

Configure o acesso ao bastião

Em seguida, configuramos o acesso ao bastião. Usamos host-at-work como um retransmissor SSH para conectar ao bastião:

Host bastion
User myself
ProxyCommand ssh host-at-work -W bastion:22

Agora você deve conseguir se conectar ao bastião usando:

ssh bastion

Configurando um proxy SOCKS

Agora que você pode se conectar ao bastião, pode configurar o proxy SOCKS:

ssh bastion -D 9932 -N

Deseja conectar-se ao último host no SSH?

Em seguida, você deseja solicitar ao SSH que use o bastião como retransmissão:

Host thing-to-observe
User myself
ProxyCommand ssh bastion -W thing-to-observe:22

Você deve então poder:

ssh thing-to-observe
    
por 18.01.2016 / 00:44
1

Bem, encontrei uma resposta:

ssh -t -v -A -D9932 -L9933:localhost:9933 -L9934:localhost:9934 FIRST-HOST ssh -D9933 -L9934:localhost:9934 -A -t -v  ec2-user@SECOND-HOST ssh -D9934 -A -t -v ec2-user@THIRD-HOST

usando 9934 como a porta do proxy socks.

Obviamente, pode ser mapeado para .ssh/config conforme necessário. créditos para o segundo link na minha pergunta.

    
por 18.01.2016 / 00:11