
Veio desta pergunta:O que é encaminhamento de porta ssh e qual é a diferença entre encaminhamento de porta ssh local e remoto, estou confuso sobre este uso:
ssh -L 123:farawayhost:456 remotehost
ssh -L sourcePort:forwardToHost:onPort connectToHost
significa: conectar-se com ssh paraconnectToHost
e encaminhar todas as tentativas de conexão para olocalsourcePort
para a portaonPort
na máquina chamadaforwardToHost
, que pode ser acessada a partir daconnectToHost
máquina.
O que significa "..., quepode ser alcançadoda connectToHost
máquina." significa exatamente?
Se bem entendi, ssh -L 123:localhost:456 remotehost
é um caso específico para o comando acima, onde ambos farawayhost
e remotehost
estão na mesma máquina.
Então, quando farawayhost
está e remotehost
não está na mesma máquina, como funciona? Isso significa que preciso fazer login remotehost
primeiro e depois farawayhost
?
Responder1
Não sei por que fiquei confuso no começo, talvez porque a resposta original não seja clara o suficiente, mas então percebi isso de repente.
Suponha que eu tenha 2 máquinas, cujos IPs públicos são 1.2.3.4
e 2.3.4.5
.
O uso seria: , solicitará uma nova linha, exigindo uma senha on .ssh -L 10283:1.2.3.4:8000 [email protected] -N
username
2.3.4.5
quando autenticado com sucesso, ssh
não fará login porque -N
está especificado, mas a conexão foi feita. Portanto, qualquer dado enviado paralocala porta 10283
será enviada primeiro para 2.3.4.5
via ssh
(porta 22
) e depois 2.3.4.5
enviará os dados para 1.2.3.4
a porta8000.
Agora, deixe-me criar um arquivo html echo hello > index.html
e executar um servidor http 1.2.3.4
com python -m http.server
.
E então digito localhost:10283
no meu PC local.
Computador local:
Sobre 1.2.3.4
: