AWS Cloud9でEC2接続をマスターする: SSHキーペアの簡単追加ガイド

記事タイトルとURLをコピーする

目次

  1. はじめに
  2. 手順概要
  3. 詳細手順
  4. トラブルシューティング
  5. まとめ

1. はじめに

エンタープライズクラウド部のウルフです。

今日は、開発エンスージアストたちが大好きなAWS Cloud9の記事を書きます。

AWS Cloud9は、ブラウザベースの統合開発環境(IDE)であり、豊富な機能を提供し、高い開発者体験を実現してくれます。

AWS Cloud9はブラウザベースのIDEのため、Cloud9環境起動時にローカルPCからSSH接続することができません。

と言うことで、普段使い慣れたローカルPCのVSCodeやターミナルから、Cloud9で立ち上げたEC2インスタンスにSSHキーペアを追加し、ローカル環境から接続する方法について説明します。

2. 手順概要

  1. AWS Cloud9でEC2インスタンスを立ち上げる。
  2. ローカルPCでSSHキーペアを生成する。
  3. 生成した公開鍵をEC2インスタンスに追加する。
  4. ローカルPCからEC2インスタンスにSSHで接続する。

3. 詳細手順

※ローカルPCは、Mac、Windows WSL環境を前提とします。

3.1 AWS Cloud9でEC2インスタンスを立ち上げる

AWS Cloud9の公式ドキュメントに従って、Cloud9環境をセットアップします。環境が作成されると、自動的にEC2インスタンスが立ち上がります。

3.2 ローカルPCでSSHキーペアを生成

以下、いずれかの方法でキーペアを生成します。

Ed25519とRSAで暗号化アルゴリズムがことなります(後述)。

ここでは推奨のEd25519でキーペアを生成。

Ed25519キーペアの生成(推奨)

ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_cloud9

ホームディレクトリの.ssh/配下にid_ed25519_cloud9というファイル名で生成します。

llコマンドで~/.sshディレクトリをリストすると、.pub拡張子がついているものと、そうでないものが生成されていることが確認できます。

.pub拡張子がついているものが公開鍵となり、拡張子がついていないものが秘密鍵となります。

ll ~/.ssh

-rw-r--r--  1 user group 94 Mar 21 21:16 id_ed25519_cloud9.pub # ← 公開鍵
-rw-------  1 user group 399 Mar 21 21:16 id_ed25519_cloud9 # ← 秘密鍵

RSAキーペアの生成

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_cloud9

ホームディレクトリの.ssh/配下にid_rsa_cloud9というファイル名で生成します。

RSAも同様に、ll ~/.sshコマンドで、.pub拡張子の公開鍵と、拡張子なしの秘密鍵が生成されていることを確認。

3.3 公開鍵をEC2インスタンスに追加

3.3.1 ローカルPCの公開鍵を展開する

公開鍵(id_ed25519_cloud9.pubまたはid_rsa_cloud9.pub)の内容を表示します。

cat ~/.ssh/id_ed25519_cloud9.pub

3.3.2 Cloud9 環境を開く

AWS マネジメントコンソールから作成したCloud9環境を開きます

Cloud9環境を開くと、Terminalが開いています。

Terminalが開いていない場合は、メニューバーのWindowNew Terminalから開いてください。

3.3.3 Cloud9 環境に公開鍵を転記する

Cloud9のEC2インスタンス上の~/.ssh/authorized_keysファイルに手順3.3.1で展開した公開鍵を追記し、ファイルを保存します。

vi ~/.ssh/authorized_keys

3.4 ローカルPCからEC2インスタンスにSSHで接続

※<EC2インスタンスのIPアドレス>の部分をセットアップしたCloud9環境EC2のGlobal IPに変更してね♪

ssh -i ~/.ssh/id_ed25519_cloud9 ec2-user@<EC2インスタンスのIPアドレス>

無事、ターミナルから接続できました!

4. トラブルシューティング

  • 接続拒否: Cloud9のEC2インスタンスをリブートしてみてください。
  • タイムアウト: Security Group設定を確認し、SSH接続元のIPが、SSH(ポート22)接続許可されていることを確認してください。
  • その他、接続できない場合、VPCやルーティングなどの確認や公式AWS Cloud9 のトラブルシューティングドキュメントを参照してください。

5. Ed25519とRSAの違い

Ed25519とRSAは、SSHキーペアの生成に使用される2つの異なる公開鍵暗号方式です。それぞれには次のような特徴があります。

Ed25519

  • 性能: Ed25519は生成、署名、検証が非常に高速です。
  • セキュリティ: サイドチャネル攻撃に対して強い耐性を持ちます。
  • キーサイズ: キーと署名が小さいため、ネットワーク上でのデータ転送が効率的です。

RSA

  • 普及度: RSAは広く普及しており、長い間使用されてきました。
  • キーサイズ: 安全な使用のためには、2048ビット以上のキーサイズが推奨されますが、これによりデータのサイズが大きくなります。
  • 柔軟性: キーサイズを調整することで、セキュリティレベルと性能のバランスを調整できますが、一般的にEd25519に比べて性能が劣ります。

Ed25519は比較的近年になって発表された暗号化アルゴリズムで、使うサービスやシステムが対応しているのであれば、Ed25519を使ってください。

6. まとめ

AWS Cloud9は、チーム開発を円滑に進めるのに非常に便利なツールです。

この記事を参考に、Cloud9での開発環境を最大限に活用し、より効率的な開発を目指してください。

Happy Coding!

ウォルフ圭 (Kei Wolfe) 記事一覧はコチラ

サーバーワークス・エンタープライズ部のウルフ。
アプリ開発が大好物🐺