Eu desenhei alguns esboços
A máquina em que o comando ssh tunnel é digitado chama-se »seu host« .
Introdução
-
local:
-L Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.
ssh -L sourcePort:forwardToHost:onPort connectToHost
significa: conecte-se com ssh aconnectToHost
e encaminhe todas as tentativas de conexão para o localsourcePort
para a portaonPort
na máquina chamadaforwardToHost
, que pode ser alcançado a partir da máquinaconnectToHost
. -
remoto:
-R Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side.
ssh -R sourcePort:forwardToHost:onPort connectToHost
significa: conecte-se com ssh aconnectToHost
e encaminhe todas as tentativas de conexão para o remotosourcePort
para a portaonPort
na máquina chamadaforwardToHost
, que pode ser alcançado a partir de sua máquina local.
Seu exemplo
Você quer se conectar a um servidor remoto através da máquina EC2, certo? Então a segunda imagem representa seu cenário. O remotehost
é sua máquina EC2. O farawayhost
é seu servidor remoto com sua porta rosa de interesse (na porta de desenho 456
, mas no seu caso, porta 22
). Então o comando tem que ficar assim:
ssh -L 22528:REMOTE-IP:22 EC2-MACHINE-IP
O número da porta da porta verde é 22528
. Agora você pode acessar seu servidor remoto com ssh via
ssh -p 22528 localhost