Retransmita duas conexões SSH juntas

-1

Eu tenho três máquinas:

  1. Eu tenho acesso físico a localhost
  2. Eu quero ssh em host1 . No entanto, está por trás do NAT carrier-grade, então eu não posso ssh diretamente para ele de localhost
  3. relayhost está configurado para me ajudar a conectar de localhost a host1

Eu quero ssh de cada localhost e host1 para relayhost e, em seguida, tenho relayhost retransmitindo minha conexão ssh de localhost para host1 .

Esta resposta sugere que posso criar um túnel em relayhost usando ssh -L se eu souber o endereço URI ou IP de host1 . No entanto, eu não sei disso por causa do NAT de portadora. Então, posso imaginar um processo para transmiti-lo assim:

  1. Em host1 , ssh user@relayhost
  2. relayhost está observando esta conexão e quando ela diz "Eu vou criar um túnel da minha porta 9999 para essa conexão"
  3. Em localhost , ssh 9999:relayhost

Este é o caminho certo para fazer isso? Como faço o passo 2?

    
por ericksonla 29.11.2017 / 17:56

1 resposta

2

Você não precisa de nenhum gatilho especializado em relayhost . Tudo o que você precisa fazer é usar o encaminhamento de porta remota com ssh -R em vez do encaminhamento de porta local com ssh -L .

Agora, se eu entendi corretamente - seu problema é que nem localhost nem host1 têm IP publicamente acessível - ambos estão atrás do NAT. Caso contrário, seria mais fácil criar um túnel de host1 para localhost com ssh -R e, em seguida, executar a segunda conexão SSH dentro desse túnel.

Se tivermos que usar o relé, isso pode ser feito nas etapas a seguir. Para maior clareza, vamos renomear sua localhost machine para myhost agora.

  1. Execute isso em host1 :

    ssh -R 12345:localhost:22 user@relayhost
    

    Isso abrirá a porta 12345 on relayhost e, quando alguém se conectar a ela, os dados serão encaminhados para a porta SSH 22 on host1 .

  2. Agora, você pode se conectar à porta 12345 on relayhost de myhost .

    ssh user@relayhost -p 12345
    

    Caso você tenha um firewall restritivo em relayhost que proíbe o acesso externo à porta 12345 , você pode usar o encaminhamento de porta local para abrir a porta localmente em myhost :

    ssh -N -L 56789:localhost:12345 user@relayhost
    

    Em seguida, conecte-se a host1 de myhost :

    ssh user@localhost -p 56789
    

No entanto, não espere criar uma solução de rede permanente no encaminhamento remoto de portas (consulte: link para possíveis problemas futuros). Você deve considerar o uso da VPN com o servidor em relayhost para a configuração de longo prazo.

    
por 29.11.2017 / 19:09