Você pode fazer tunelamento ssh contínuo?

0

Eu vi aqui uma maneira de fazer dois saltos ssh

ssh -L 9998:host2:22 -N host1
ssh -L 9999:localhost:1234 -N -p 9998 localhost

Acho que entendo o que uma linha faz, mas não como elas funcionam juntas. Você pode continuar fazendo isso para ter túneis dentro de túneis para muitos saltos? Seria assim?

ssh -L 9997:host3:22 -N host2
ssh -L 9998:host2:22 -N host1
ssh -L 9999:localhost:1234 -N -p 9998 localhost

    
por Josh 17.09.2013 / 06:22

1 resposta

4

Depende do que você está tentando encaminhar via SSH. AKA o que você está tentando fazer.

A sintaxe -L lport:host:hport faz com que, se você se conectar a lport em seu host inicial, conecte-se a hport no host.

Então diga que você está em hostA . e você deseja obter o http (porta 80) em hostD que não pode ser acessado, exceto por hostC , que só pode ser acessado por hostB e que pode ser acessado pelo seu início em hostA .

Você pode executar (de hostA ):

ssh -L 8080:localhost:8081 hostB

em seguida, nesse hostB login run:

ssh -L 8081:localhost:8082 hostC

em seguida, nesse hostC login run:

ssh -L 8082:localhost:80 hostD

Você pode então (em hostA ) acessar localhost:8080 e se conectar à porta 80 de hostD .

Nota: você pode usar o mesmo 8080 em todos, já que você está usando essa porta apenas uma vez por máquina. Eu apenas aumentava os números de porta em cada conexão para melhor mostrar as correlações entre as portas.

A outra coisa a ter em mente é que o host (entre os dois: 's) está no contexto da máquina em que você está se dedicando. por isso, se hostC tivesse acesso direto à porta 80 de hostD , você poderia ter feito o seguinte:

Você pode executar (de hostA ):

ssh -L 8080:localhost:8081 hostB

em seguida, nesse hostB login run:

ssh -L 8081:hostD:80 hostC

    
por 17.09.2013 / 07:09