箱のプログラミング日記。

えんじにあ奮闘記

異なるEC2インスタンス間でssh接続する

f:id:y_hakoiri:20191120232646j:plain

異なるEC2インスタンス間でssh接続する方法についてまとめていきます。

今回は同じサブネット(ネットワーク)内にあるインスタンスAからインスタンスBに接続するケースを想定しています。

やること

  • インスタンスBの公開鍵を確認
  • インスタンスAにインスタンスBの公開鍵を設置
  • インスタンスBからインスタンスAにssh接続

インスタンスBの公開鍵を確認

ssh接続するためには接続先に接続元の公開鍵が設置されていないといけないので、まずインスタンスAに設置するインスタンスBの公開鍵を確認します。

(インスタンスB)

[ec2-B ~]$ cat ~/.ssh/id_rsa.pub
ssh-rsa eriogaje4oirta5meca2rijaHo....................................

こちらをコピペ。

ちなみに、キーペアを別途作成する場合はこちらを参照。

ssh公開鍵認証設定まとめ - Qiita

※デフォルトではid_rsaid_rsa.pubが作成されるので、既に存在するキーペアとファイル名が被らないようオプションによる指定が必要

インスタンスAにインスタンスBの公開鍵を設置

先ほどコピペしたインスタンスBの公開鍵をインスタンスAに設置します。

(インスタンスA)

# ここに設置
[ec2-A ~]$ vim /home/app_name/.ssh/authorized_keys

インスタンスBからインスタンスAにssh接続

鍵の設置が完了したので無事接続できるかどうか疎通確認をします。

(インスタンスB)

[ec2-B ~]$ ssh ec2-user@インスタンスAのIPアドレス
Last login: Fri Oct 30 17:59:21 2020 from ************

       __|  __|_  )
       _|  (     /   Amazon Linux AMI
      ___|\___|___|

https://aws.amazon.com/amazon-linux-ami/2018.03-release-notes/
97 package(s) needed for security, out of 137 available
Run "sudo yum update" to apply all updates.
[ec2-A ~]$

無事成功!

うまくいかないときは

うまく接続できない場合は以下のことを確認すると良さそうです

  • インスタンスAのセキュリティグループでsshによる接続を許可しているか
  • B→Aに接続する際にパブリックIPを使用していないか

インスタンスAのセキュリティグループでsshによる接続を許可しているか

そもそもこれができていないとローカルからインスタンスAにも接続できていないと思うのでレアケースだとは思いますが、「インスタンスAがsshによる接続を受け付けられる状態にあるか」を確認します

AWSコンソールのEC2インスタンス一覧画面から、該当のインスタンスを選択して「セキュリティ」のタブを確認

f:id:y_hakoiri:20201031174556p:plain

サービス一覧から「VPN」を検索し、メニューバーから「セキュリティグループ」で一覧を確認

f:id:y_hakoiri:20201031173935p:plain

インスタンスAに適用されているセキュリティグループのインバウンドルールを確認

f:id:y_hakoiri:20201031175722p:plain

ポート22が適用されていたら、sshによるインバウンド(入ってくる)接続が許可されているのでOK

B→Aに接続する際にパブリックIPを使用していないか

冒頭で説明した通り、今回は同じサブネット(ネットワーク)内にあるインスタンスAからインスタンスBに接続するケースを想定している。

同じネットワーク内の接続の場合はパブリックIPではなくプライベートIPを使用するので、

f:id:y_hakoiri:20201031174917p:plain

こっちを使用。

もしなんらかの理由でローカルネットワーク内でもパブリックIPでの接続をしたい場合は、セキュリティグループの設定で「ローカルネットワーク内の他のサーバーからパブリックIPへの接続が到着した場合も許可する」という条件を追加する必要がある。

参考

今回の内容は普段業務でやっていること+先輩から教えていただいたことになりますが、付随する知識に関してはこちらにお世話になりました。ありがとうございました。

ssh公開鍵認証設定まとめ - Qiita

(DB・サーバー構築編)世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまで - Qiita