Veio desta pergunta: Qual é o encaminhamento de porta ssh e qual é a diferença entre o encaminhamento de porta ssh local e remoto , estou confuso sobre esse uso:
ssh -L 123:farawayhost:456 remotehost
ssh -L sourcePort:forwardToHost:onPort connectToHost
significa: conectar com ssh paraconnectToHost
, e encaminhar todas as tentativas de conexão para a porta local na máquina chamada , que pode ser acessada pela máquina.sourcePort
onPort
forwardToHost
connectToHost
O que significa "..., que pode ser alcançado a partir da connectToHost
máquina." quer dizer 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 eu preciso fazer login remotehost
primeiro e depois farawayhost
?
Não sei por que fiquei confuso no começo, talvez porque a resposta original não seja clara o suficiente, mas percebi isso de repente.
Suponha que eu tenha 2 máquinas, cujo ip público seja
1.2.3.4
e2.3.4.5
.O uso seria:
ssh -L 10283:1.2.3.4:8000 [email protected] -N
, ele solicitará uma nova linha, exigindo uma senha deusername
on2.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 para a porta local10283
será enviado primeiro para2.3.4.5
viassh
(port22
), depois2.3.4.5
enviará os dados para1.2.3.4
a porta8000.
Agora deixe-me criar um arquivo html
echo hello > index.html
e executar um servidor http1.2.3.4
compython -m http.server
.E então eu digito
localhost:10283
no meu PC local.Computador local:
Ativado
1.2.3.4
: