需要从一台Amazon EC2服务器切换到另一台


12

基本上,我需要能够使用SSH 从一个EC2实例连接到另一个。我运行命令ssh -i path-to-pem-file ec2-user@dns-address-of-ec2-instance,它超时。

我将安全组设置为允许从第二个EC2实例的公共IP地址入站SSH,但仍然无法正常工作。我知道一切都会好起来的,因为当我将SSH入站流量设置为“可以从任何地方允许”时,我可以毫无问题地进行连接。另外,我可以从家用计算机连接到EC2实例(我将IP地址添加到了安全组)而没有任何问题。

显然,我无法将入站流量打开以“允许从任何地方允许”,但是当我将其限制为仅第二个EC2实例的IP地址时,似乎无法建立连接。也许公共IP地址不是我应该放入安全组中的地址?


我似乎也无法ping通;它只是超时。这是结果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

Answers:


13

EC2实例使用内部10.X.X.X地址(如果使用VPC,则使用其他地址),并且将到达其“公共” IP地址的流量简单地重新路由到内部IP地址。EC2实例还使用其他不可公开访问的DNS服务器。当您解析另一个EC2实例的主机名时,由于您位于AWS网络中,因此它将为您提供实例的10.X.X.X地址,而不是公共IP地址。这样可以避免流量流向Internet并重新进入,从而使其速度更快。

即使您可以按IP地址将白名单加入,这也不是一个好主意,因为在EC2经典模式下,内部和公共地址都可以更改。正确的解决方案是按安全组将其列入白名单。您基本上是将一条规则添加到目标安全组,该规则说允许特定特定源安全组的端口22。

如果两个实例都在同一个帐户中,则只需允许sg-1234abcdsg-1234abcd原始实例所属的安全组在哪里)。如果它们在不同的帐户中,请输入帐号,例如111122223333/sg-1234abcd
有关其他信息,请参见文档


完美的正是我想要的!运作顺利!
庞培

当谈到不同帐户的安全组时,需要进行VPC对等,以便可以引用它们。在这里看到:docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/...
鲍里斯Strandjev

只是为了完成,我想补充一点,AWS向您收取从互联网到VPC的传入流量的费用,但是VPC内部的流量是免费的,因此不通过互联网不仅速度更快,而且成本更低。
Blueriver
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.