Tunneling SSH através de várias máquinas (para SOCKS)

3

Eu tenho visto perguntas sobre o encapsulamento de SSH por meio de várias máquinas, mas quero encapsular uma conexão SOCKS.

Normalmente, eu usaria algo como ssh -C2qTnN -D 8080 username@remote_machine para tornar a porta local 8080 um túnel SOCKS através da máquina remota. Eu gostaria de abrir uma conexão de meias do meu laptop na máquina2, que só pode ser acessada via SSH da máquina1.

Então, ao invés de tunelamento de conexões SSH no sentido normal, eu suponho que eu queira rodar esse comando em machine1, então a porta local 8080 é redirecionada para machine2 e de alguma forma canaliza 8080 em machine1 de volta para uma porta local no laptop. >     

por jwbensley 23.09.2012 / 15:48

2 respostas

5

Então, se eu entendi corretamente, você pode ssh da máquina 1 para a máquina 2, mas não do seu laptop (a partir do qual você pode ssh para a máquina 1). Então você gostaria de ter um servidor de meias na máquina 1 e usá-lo do seu laptop? Então, tudo o que você precisa é de um port forward 8080: executado em seu laptop:

ssh -nL 8080:localhost:8080 machine1 ssh -C2qnN -D 8080 username@machine2
    
por 23.09.2012 / 16:26
1

A resposta para esta pergunta será a RemoteCommand option a ser especificada no ~/.ssh/config .

Host proxy
    Hostname ma.ch.in.e1
    RemoteCommand ssh -C2qnN -D 8080 username@machine2
    LocalForward 8080 localhost:8080

Isso requer OpenSSH 7.6 a partir de 11/2017 ou posterior. Versões antes disso precisam usar a resposta de @ StéphaneChazelas.

Se você também quiser se conectar a machine1 sem também ativar o proxy, basta adicionar um alias como m1 :

Host m1
    Hostname ma.ch.in.e1
    
por 28.01.2018 / 19:59