Я создал два экземпляра EC2 (назовем их клиентский и удаленный хосты) в одной частной подсети, и я запустил контейнер Docker внутри удаленного хоста.
Сам контейнер докеров является частью сети докеров с IP-адресом 192.168.125.2.
Я запустил sshd-сервер внутри этого контейнера и сопоставил порт 22 с портом 2201, внутри и снаружи контейнера, соответственно.
Вот моя проблема: если я попытаюсь использовать ssh внутри контейнера докеров с клиентского хоста, используя мой общедоступный IP-адрес, например:
ssh -p 2201 username@PUBLIC_IP
Затем, даже если это займет много времени, я могу подключиться по ssh к контейнеру на удаленном хосте.
Если, тем не менее, я попытаюсь подключиться к контейнеру по ssh с клиентского хоста, используя частный IP
ssh -p 2201 username@PUBLIC_IP
Я получаю ошибку тайм-аута и не могу получить доступ к контейнеру докера.
Я должен добавить, что если я попытаюсь выполнить ssh удаленный хост с локального хоста (без доступа к контейнеру докера), например:
ssh -p 22 username@PRIVATE_IP
тогда я могу использовать ssh без проблем.
В чем может быть проблема? Как я могу ssh от моего клиента к контейнеру на моем удаленном хосте, с использованием частных IP-адресов?
Я добавил правила для входящего трафика, разрешающие трафик для портов 2201 и 2202 из любого источника, отключил проверку IP-адресов источника / назначения, но все равно это не дало результата.
Спасибо.
ОБНОВЛЕНИЕ 1:
Вот результат для порта докера
5672/tcp -> 0.0.0.0:5672
7777/tcp -> 0.0.0.0:7777
22/tcp -> 0.0.0.0:2201
Я предлагаю сначала включить трафик icmp в группе безопасности и попробовать выполнить эхо-запрос с клиента на удаленный IP-адрес. В основном это не сработает, теперь в правиле ICMP добавьте IP-адрес источника в качестве имени "<>". Это обеспечит доступ между EC2, принадлежащим этой группе безопасности. Если это сработает, то аналогичным образом добавьте IP-адрес источника в качестве имени «<>» в вашем правиле 2201, а также в правиле 22. Затем попробуйте свой ssh и посмотрите, работает ли он