Вам нужна опция -R
или RemoteForward
в ~/.ssh/config
. См. man ssh
. Я немного заржавел в этом, но думаю:
ssh -i ~/.ssh/yourAWSkey -R 80:localhost:80 ubuntu@PublicIpAddress
должен предоставить любому веб-серверу на вашем Pi, прослушивающему порт 80, PublicIpAddress экземпляра AWS EC2. Переадресация портов ssh очень мощная и чрезвычайно гибкая.
В дополнение к вашему вопросу :Порт удаленной переадресации 22 дает вам доступ по SSH к вашему Pi из общедоступного Интернета , но будьте осторожны-вы пропустите доступ SSH к серверу EC2 через порт 22 (как пока Pi держит соединение ). Так что лучше сделайте ssh -R 443:localhost:22
. Затем любое подключение к PublicIpAddress :443 (каноническому порту HTTPS )будет перенаправлено на порт SSH на Pi.
Еще один дополнительный пункт :, который вы хотели бы создать в ~/.ssh/config
в соответствии с
абзацем.
Host ec2frontend
HostName FillInThePublicIpAddress
User ubuntu
Port 22
IdentityFile ~/.ssh/FillInNameOfRSAPrivateKey
TCPKeepAlive no
ServerAliveInterval 15
ServerAliveCountMax 3
RemoteForward 80 localhost:80
DynamicForward 8108
Whis позволяет простому ssh ec2frontend
подключать и реверсировать порт 80.
И еще другое :Вы хотите установить autossh и использовать autossh -M 0 -Nf ec2frontend
для постоянного подключения. autossh
находится в репозиториях Ubuntu, и после установки и вызова с помощью приведенной выше команды поддерживает SSH в рабочем состоянии (с помощью ping через туннель SSH )и перезапускает его при необходимости.