Нужно ssh с одного сервера Amazon EC2 на другой

12

По сути, мне нужно иметь возможность подключаться от одного экземпляра EC2 к другому с помощью SSH. Я запускаю команду ssh -i path-to-pem-file ec2-user@dns-address-of-ec2-instance, и время истекло.

Я установил группу безопасности, чтобы разрешить входящий SSH с общедоступного IP-адреса моего второго экземпляра EC2, но он все еще не работает. Я знаю, что все должно быть хорошо, потому что, когда я устанавливаю свой входящий трафик SSH, чтобы "разрешить откуда угодно", я могу соединиться без проблем. Также я могу без проблем подключиться к экземпляру EC2 с домашнего компьютера (я добавил свой IP-адрес в группу безопасности).

Очевидно, что я не могу оставить свой входящий трафик открытым, чтобы «разрешить откуда угодно», но я не могу подключиться, когда ограничиваю его только IP-адресом второго экземпляра EC2. Может быть, публичный IP-адрес - это не то, что я должен поместить в группу безопасности?


Я не могу пинговать это тоже; это просто время ожидания. Вот результатssh -vv -i path-to-pem-file ec2-user@dns-address-of-ec2-instance

OpenSSH_6.2p2, OpenSSL 1.0.1h-fips 5 Jun 2014
debug1: Reading configuration data /home/ec2-user/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 50: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to dns-address [IP Address different from public ip] port 22.
debug1: connect to address [IP Address different from public ip] port 22: Connection timed out
ssh: connect to host dns-address port 22: Connection timed out
Помпей
источник

Ответы:

13

Экземпляры EC2 используют внутренний 10.X.X.Xадрес (или другой адрес, если используется VPC), и трафик на их «общедоступный» IP-адрес просто перенаправляется на внутренний IP-адрес. Экземпляры EC2 также используют другой DNS-сервер, который не является общедоступным. Когда вы разрешаете имя хоста другого экземпляра EC2, поскольку вы находитесь в сети AWS , он дает вам адрес экземпляра 10.X.X.Xвместо общедоступного IP-адреса. Это предотвращает выход трафика в интернет и обратно, что ускоряет его.

Даже если вы можете внести белый список по IP-адресу, это не очень хорошая идея, так как в классическом режиме EC2 ваш внутренний и публичный адрес могут измениться. Правильное решение состоит в том, чтобы занести белый список в группу безопасности. Вы в основном добавляете правило к целевой группе безопасности, говорящее о том, чтобы разрешить порт 22 из определенной исходной группы безопасности.

Если оба экземпляра находятся в одной и той же учетной записи, вы просто разрешаете sg-1234abcd(где sg-1234abcdнаходится группа безопасности, членом которой является исходный экземпляр). Если они находятся в разных учетных записях, укажите номер учетной записи, например 111122223333/sg-1234abcd.
Смотрите документацию для получения дополнительной информации.

Патрик
источник
Идеально, это именно то, что я искал! Работает безотказно!
Помпей
Говоря о группах безопасности разных учетных записей, необходимо настроить пиринг VPC, чтобы вы могли ссылаться на них. Смотрите здесь: docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/…
Борис Странджев
Просто для завершения я хотел бы добавить, что AWS взимает плату за входящий трафик в VPC из Интернета, но трафик внутри VPC бесплатный, поэтому не выходить в Интернет не только быстрее, но и дешевле.
Blueriver