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

Pom*_*pey 12 ssh amazon-ec2

基本上,我需要能够使用 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
Run Code Online (Sandbox Code Playgroud)

phe*_*mer 13

EC2 实例使用内部10.X.X.X地址(如果使用 VPC,则使用其他地址),并且到其“公共”IP 地址的流量只是重新路由到内部 IP 地址。EC2 实例还使用其他不可公开访问的 DNS 服务器。当您解析另一个 EC2 实例的主机名时,因为您在AWS网络内,它为您提供实例的10.X.X.X地址而不是公共 IP 地址。这可以防止流量必须出入互联网并返回,从而使其速度更快。

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

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