web-dev-qa-db-ja.com

あるAmazon EC2サーバーから別のサーバーにSSHする必要がある

基本的に、SSHを使用して1つの EC2 インスタンスから別のインスタンスに接続できる必要があります。コマンドssh -i path-to-pem-file ec2-user@dns-address-of-ec2-instanceを実行すると、タイムアウトします。

2番目のEC2インスタンスのパブリックIPアドレスからのSSHインバウンドを許可するようにセキュリティグループを設定しましたが、それでも機能しません。 SSHインバウンドトラフィックを「どこからでも許可」に設定すると問題なく接続できるので、すべてが問題ないはずです。また、ホームマシンからEC2インスタンスに接続できます(セキュリティグループにIPアドレスを追加しました)。

明らかに、「どこからでも許可」するために受信トラフィックを開いたままにすることはできませんが、2番目の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
12
Pompey

EC2インスタンスは内部10.X.X.Xアドレス(またはVPCを使用している場合は他のアドレス)を使用し、「パブリック」IPアドレスへのトラフィックは内部IPアドレスに再ルーティングされるだけです。 EC2インスタンスは、パブリックにアクセスできない別のDNSサーバーも使用します。他のEC2インスタンスのホスト名を解決すると、 [〜#〜] aws [〜#〜] ネットワーク内にいるため、インスタンスの10.X.X.Xアドレスではなく、パブリックIPアドレス。これにより、トラフィックがインターネットに出入りする必要がなくなり、高速になります。

IPアドレスでホワイトリストを作成できたとしても、EC2クラシックモードのようにこれは良いアイデアではありません。内部アドレスとパブリックアドレスの両方が変更される可能性があります。適切な解決策は、セキュリティグループごとにホワイトリストに登録することです。基本的に、特定のオリジンセキュリティグループからのポート22を許可するというルールを宛先セキュリティグループに追加します。

両方のインスタンスが同じアカウントにある場合、sg-1234abcdを許可するだけです(ここでsg-1234abcdは、Originインスタンスがメンバーであるセキュリティグループです)。アカウントが異なる場合は、111122223333/sg-1234abcdなどのアカウント番号を含めます。
詳細については、 ドキュメント を参照してください。

13
Patrick