Я создал VPC в aws с общедоступной подсетью и частной подсетью. Частная подсеть не имеет прямого доступа к внешней сети. Так, существует сервер NAT в общедоступной подсети, которые передают весь исходящий трафик от частной подсети до внешней сети.
В настоящее время я могу SSH от общедоступной подсети до частной подсети, также SSH от NAT до частной подсети. Однако то, что я хочу, является SSH от любой машины (домашний ноутбук, офисная машина и мобильный телефон) к экземплярам в частной подсети.
Я провел некоторое исследование, что я могу установить поле NAT для передачи SSH экземпляру в частной подсети. Но я получил не удачу для этого.
Может любой перечислять то, что я должен установить для создания этого возможным.
Именование:
ноутбук (любое устройство вне VPC)
туземный (сервер NAT в общедоступной подсети)
место назначения (сервер в частной подсети, которую я хочу подключить с),
Не верное следующее ограничения или нет:
У "места назначения" нет общедоступного IP, только IP подсети, например, 10.0.0.1, "место назначения" не может соединиться с "туземным" через общественность nat. Существует несколько "целевых" серверов, я должен установить один для каждого?
Спасибо
Вы можете настроить бастионный хост для подключения к любому экземпляру внутри вашего VPC:
Вы можете выбрать запуск нового экземпляра, который будет функционировать как бастионный хост, или использовать существующий NAT экземпляр в качестве бастиона.
Если вы создадите новый экземпляр, то вы это сделаете:
1) создадите группу безопасности для вашего бастионного хоста, которая будет разрешать доступ по SSH с вашего ноутбука (обратите внимание на эту группу безопасности для шага 4)
2) запустите отдельный экземпляр (бастион) в публичной подсети в вашем VPC
3), присвоив этому бастионному хосту публичный IP либо при запуске, либо назначив ему эластичный IP
4), обновите группы безопасности каждого из ваших экземпляров, которые не имеют публичного IP, чтобы разрешить доступ по SSH с бастионного хоста. Это можно сделать, используя ID группы безопасности бастионного узла (sg-#####).
5) используйте переадресацию SSH агентов (ssh -A user@publicIPofBastion) для подключения сначала к бастиону, а затем один раз в бастионном узле,SSH к любому внутреннему экземпляру (ssh user@private-IP-of-Internal-Instance). Переадресация агента позаботится о переадресации вашего приватного ключа, чтобы он не хранился на бастионном экземпляре (никогда не хранить приватные ключи ни на одном экземпляре!!)
Пост блога AWS, приведенный выше, должен быть в состоянии предоставить некоторую щепетильность в отношении процесса. Я также включил ниже, если вам нужны дополнительные подробности о бастионных хостах:
Concept of Bastion Hosts: http://en.m.wikipedia.org/wiki/Bastion_host
Если вам нужны разъяснения, не стесняйтесь комментировать.
Просто для пояснения: как только вы подключитесь по ssh к вашему хосту-бастиону, вам нужно будет подключиться по ssh к хосту NAT как пользователь ec2-user
. Это немного обмануло меня, поскольку обычно пользователь ubuntu на AWS - это ubuntu. Итак, я сделал:
laptop> ssh -A ubuntu@ssh_bastion
ssh_bastion> ssh ec2-user@nat_private_dns_or_private_ip
Также помните, что ваш ssh_bastion должен иметь правило для исходящего трафика, которое разрешает трафик на другие хосты и SG.
La única forma en que podría hacerlo funcionar.
1) Asegúrese de que el grupo de seguridad para esta instancia privada tenga en la regla de entrada el grupo de seguridad de la subred pública
Puertos Fuente de protocolo
Todos Todos sg-0b6616e070b9ea2d (grupo de seguridad pública)
2) Con los comandos de proxy, configure su archivo de configuración ssh para tener algo como esto
vim ~ / .ssh / config
Host publichost
HostName 24.123.34.45
User ubuntu
IdentityFile ~/mypem.pem
ProxyCommand none
Host privatehost
HostName 10.0.2.133
User ubuntu
IdentityFile ~/mypem.pem
ProxyCommand ssh publichost -W %h:%p
Ejecute ssh privatehost
debería funcionar