O que você está procurando é a opção -R
ou RemoteForward
in ~/.ssh/config
. Veja man ssh
. Estou um pouco enferrujado neste, mas penso:
ssh -i ~/.ssh/yourAWSkey -R 80:localhost:80 ubuntu@PublicIpAddress
deve expor qualquer servidor da Web em seu Pi que esteja escutando na porta 80 para o PublicIpAddress da instância do AWS EC2. O desdobramento do ssh é muito poderoso e extremamente flexível.
Além da sua pergunta: A porta de redirecionamento remoto 22 dá acesso ssh ao seu Pi a partir da internet pública mas tenha cuidado - você perde o acesso SSH ao servidor EC2 na porta 22 (contanto que o Pi está segurando a conexão). Então é melhor você fazer ssh -R 443:localhost:22
. Isso encaminhará qualquer conexão para PublicIpAddress: 443 (a porta HTTPS canônica) para a porta SSH no Pi.
Outro ponto adicional: você gostaria de configurar um parágrafo adequado em ~/.ssh/config
ao longo das linhas de
Host ec2frontend
HostName FillInThePublicIpAddress
User ubuntu
Port 22
IdentityFile ~/.ssh/FillInNameOfRSAPrivateKey
TCPKeepAlive no
ServerAliveInterval 15
ServerAliveCountMax 3
RemoteForward 80 localhost:80
DynamicForward 8108
Whis permite que um ssh ec2frontend
simples conecte e reverta a porta de encaminhamento 80.
E mais uma outra: Você quer instalar autossh e usar
autossh -M 0 -Nf ec2frontend
para ter uma conexão permanente. autossh
está no repositório do Ubuntu e depois de instalar e chamar com o comando acima mantém o SSH ativo (com um ping através do túnel SSH) e reinicia se necessário.