この記事は約3分で読めます。
この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。
目次
- はじめに
- 手順概要
- 詳細手順
- トラブルシューティング
- まとめ
1. はじめに
エンタープライズクラウド部のウルフです。
今日は、開発エンスージアストたちが大好きなAWS Cloud9の記事を書きます。
AWS Cloud9は、ブラウザベースの統合開発環境(IDE)であり、豊富な機能を提供し、高い開発者体験を実現してくれます。
AWS Cloud9はブラウザベースのIDEのため、Cloud9環境起動時にローカルPCからSSH接続することができません。
と言うことで、普段使い慣れたローカルPCのVSCodeやターミナルから、Cloud9で立ち上げたEC2インスタンスにSSHキーペアを追加し、ローカル環境から接続する方法について説明します。
2. 手順概要
- AWS Cloud9でEC2インスタンスを立ち上げる。
- ローカルPCでSSHキーペアを生成する。
- 生成した公開鍵をEC2インスタンスに追加する。
- ローカル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が開いていない場合は、メニューバーのWindow
→New 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) 記事一覧はコチラ
サーバーワークス・エンタープライズ部のウルフ。
アプリ開発が大好物🐺