
Estou tentando entender o fluxo de conexão da configuração a seguir, para poder replicar os comandos remotos usando o Windows PuTTY ou PLINK.
Tenho 3 computadores: local - intermediário - remoto
No computador local estou executando o seguinte comando
ssh -R 10022:localhost:22 -i /location/to/key i-user@intermediate-ip -p 22
Pelo que entendi, o comando acima permite que qualquer pessoa no servidor intermediário conectado pela porta 10022 seja encapsulada de volta ao computador local pela porta 22.
O próximo comando é executado por alguém no computador remoto
ssh -D 3456 -J i-user@intermediate-ip -i ~/.ssh/id_rsa local-user@localhost -p 10022 -i ~/.ssh/id_rsa
Esta parte me confunde. Basicamente, estamos sshing no servidor intermediário e, a partir daí, sshing no computador local através da porta 10022? Mas e o encaminhamento dinâmico de porta? Como isso funciona? É executado no computador local? Como ele flui pelo túnel?
Acredito queComo configurar o PuTTY para conexão de túnel SSH de 3 saltos?responde como ir do controle remoto para o intermediário usando o plink, masAinda não entendo como dar o último salto do intermediário para o local E implementar o encaminhamento dinâmico de porta.
Caso eu não tenha explicado bem o suficiente, aqui está a saída detalhada para os comandos do computador remoto
O log de depuração mostra
Setting implicit ProxyCommand from ProxyJump: ssh -l i-user -vvv -W '[%h]:%p' intermediate-ip
debug1: Executing proxy command: exec ssh -l username -vvv -W '[localhost]:10022' intermediate-ip
resolving "intermediate-ip" port 22
Connecting to intermediate-ip [intermediate-ip] port 22.
Connection established.
Authenticated to intermediate-ip ([intermediate-ip]:22).
ssh_init_stdio_forwarding: localhost:10022
Authenticating to localhost:10022 as 'd-user'
put_host_port: [localhost]:10022
Authenticated to localhost (via proxy).
Local connections to LOCALHOST:3456 forwarded to remote address socks:0
Local forwarding listening on ::1 port 3456
Local forwarding listening on 127.0.0.1 port 3456