質問: ### 前提・実現したいこと ローカル端末からEC2へのssh接続は出来るのですが、EC2からEC2へのssh接続が出来ないでいます。 接続元EC2ではElasticIPを設定しており、接続先EC2のセキュリティグループで既に`SSH TCP 22 (接続元ElasticIP)`を開放しています。 原因と解決方法を教えてくださいませ。 また、他に何か確認出来ることはないでしょうか? よろしくお願いいたします。 ### 発生している問題・エラーメッセージ ``` OpenSSH_6.6.1, OpenSSL 1.0.1k-fips 8 Jan 2015 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 56: Applying options for * debug2: ssh_connect: needpriv 0 debug1: Connecting to ec2-54-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com [172.xxx.xxx.xxx] port 22. debug1: connect to address 172.xxx.xxx.xxx port 22: Connection timed out ssh: connect to host ec2-54-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com port 22: Connection timed out ``` ### 該当のソースコード ``` chmod 400 private.pem ssh -vvv -i private.pem ec2-user@ec2-54-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com ``` ### 試したこと プライベートキー(private.pem)のパーミッションは400に設定されています。 接続先EC2のステータスチェックは「2/2 のチェックに合格しました」と出ています。 ローカル端末からのssh接続は同様の方法で出来ています。 接続先EC2と接続元EC2は念のため再起動を行いましたが、変わらず接続出来ませんでした。
回答: 同一VPC内のEC2インスタンスと仮定した上で、細かい検証はしていない話になるのですが、 内部でアクセスするときはVPCのネットワーク経由になるのだと思います。 > > ec2-54-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com [172.xxx.xxx.xxx] > > > と出ているのですが、VPCのデフォルトのネットワークが`172.`から始まるものだった気がします。 ### 案1: 接続元のVPCネットワーク側のIPアドレスをセキュリティグループに追加する 接続元のインスタンスにはElasticIPで取得したIPの他にVPCにて付与されているIPアドレスがあるかと思うので、 `Inbound`にそのIPも設定してあげればか良いかと思います。 ### 案2: セキュリティグループ間で接続できるように定義する 接続元用に適当なセキュリティグループ(グループA)を定義して、接続先のセキュリティグループに「グループAからの接続」を許可するようにすると、接続できるかと思います。