SSH 経由で Elastic Compute Service (ECS) Linux インスタンスに接続する場合、認証のためにパスワードを入力する必要なく、キーペアを指定できます。
SSH キーペアの概要
SSH キーペアとは
SSH キーペアは、SSH 経由で ECS インスタンスに接続するために使用される認証情報です。 SSH キーペアは、公開鍵と秘密鍵で構成されます。 公開鍵はインスタンスに自動的に保存されます。 秘密鍵は、オンプレミスコンピュータに安全に保管する必要があります。 キーはペアで使用される必要があります。 公開鍵はデータの暗号化に使用され、秘密鍵はデータの復号化に使用されます。 公開鍵を使用して暗号化されたデータは、秘密鍵を使用してのみ復号化できます。
SSH キーペアベースの認証の利点
セキュリティと信頼性
SSH キーペアのセキュリティ強度は、通常のパスワードよりも高くなっています。 公開鍵から秘密鍵をリバースエンジニアリングすることは非常に困難であるため、ブルートフォースクラッキングの脅威がなくなります。
利便性
SSH コマンドまたは関連ツールを使用して、SSH キーペアを使用してインスタンスに接続できます。これはパスワード不要です。
SSH キーペアを使用して、複数の Linux インスタンスに同時に接続できます。これは、より便利な方法で Linux インスタンスをバッチ管理できる、推奨されるログイン方法です。
SSH キーペアのしくみ
次の図は、簡略化された SSH キーペアベースの認証プロセスを示しています。 クライアントはサーバーへのログインリクエストを開始します。 リクエストを受信すると、サーバーは公開鍵を使用してランダムな文字列を暗号化し、暗号化された文字列でクライアントに応答します。 次に、クライアントは秘密鍵を使用して文字列を復号化し、文字列をサーバーに返します。 サーバーは、2 つの文字列が一致するかどうかを確認することで、クライアントを認証します。
キーペアの管理
すべてのキーペアを表示する
ECS コンソールですべてのキーペアを表示する
次の図に示すように、[キーペア] ページでキーペアを管理できます。 次の手順を実行して [キーペア] ページに移動します。 このページでは、現在のリージョンにあるすべてのキーペアに関する情報を表示し、キーペアを管理できます。
ECS コンソール - キーペアECS コンソール - キーペア に移動します。
上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。
API オペレーションを呼び出してすべてのキーペアを表示する
特定のリージョン内のすべてのキーペアをクエリするには、
DescribeKeyPairs
オペレーションを呼び出します。 詳細については、「DescribeKeyPairs」をご参照ください。
キーペアを作成する
ECS コンソールでキーペアを作成する
重要ECS コンソールでキーペアを作成できます。 キーペアを作成すると、キーペアの秘密鍵が自動的にダウンロードされます。 秘密鍵は安全に保管し、機密性を確保する必要があります。 ECS は公開鍵を保存しますが、秘密鍵は保存しません。 SSH キーペアがバインドされている ECS インスタンスに接続するには、秘密鍵を提供する必要があります。
1 つのリージョンに最大 500 個の SSH キーペアを持つことができます。
次の手順を実行して、ECS コンソールでキーペアを自動的に作成します。
に移動します。
上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。
[キーペア] ページで、[SSH キーペアの作成] をクリックします。
[ SSH キーペアの作成] ダイアログボックスで、次のパラメータを構成します。
名前: キーペアの名前は 2 ~ 128 文字で、文字、数字、ピリオド(.)、アンダースコア(_)、ハイフン(-)、コロン(:) を使用できます。 名前に特殊文字や数字を先頭に付けることはできません。
作成タイプ: [自動作成] を選択します。 システムは自動的にキーペアを作成します。 秘密鍵は、キーペアの作成後に自動的にダウンロードされます。 秘密鍵は 1 回だけダウンロードできます。 秘密鍵ファイルは安全に保管する必要があります。
リソースグループ: キーペアをリソースグループに割り当てて、管理を容易にすることができます。 詳細については、「リソースグループ」をご参照ください。
タグ: リソースの検索と集約を容易にするために、キーペアに 1 つ以上のタグを追加できます。 詳細については、「タグ」をご参照ください。
[OK] をクリックします。
キーペアが作成されると、ブラウザは秘密鍵ファイル (<キーペア名>.pem) をコンピュータにダウンロードします。
API オペレーションを呼び出してキーペアを作成する
CreateKeyPair
オペレーションを呼び出して、SSH キーペアを作成できます。 詳細については、「CreateKeyPair」をご参照ください。
公開鍵情報を表示する
キーペアの公開鍵に関する情報を表示するには、次の手順を実行して秘密鍵から公開鍵を取得します。
オンプレミスの Linux または macOS デバイス
ssh-keygen
コマンドを実行し、.pem
ファイルが保存されているパスを指定します。
/path_to_key_pair/my-key-pair.pem は、秘密鍵ファイルが保存されているパスです。
ssh-keygen -y -f /path_to_key_pair/my-key-pair.pem
返される公開鍵情報の例:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABA****+GF9q7rhc6vYrExwT4WU4fsaRcVXGV2Mg9RHex21hl1au77GkmnIgukBZjywlQOT4GDdsJy2nBOdJPrCEBIPxxxxxxxxxx/fctNuKjcmMMOA8YUT+sJKn3l7rCLkesE+S5880yNdRjBiiUy40kyr7Y+fqGVdSOHGMXZQPpkBtojcxxxxxxxxxxx/htEqGa/Jq4fH7bR6CYQ2XgH/hCap29Mdi/G5Tx1nbUKuIHdMWOPvjxxxxxxxxxx+lHtTGiAIRG1riyNRVC47ZEVCxxxxxx
コマンドが失敗した場合は、chmod 400 my-key-pair.pem
コマンドを実行して権限を変更し、自分だけが公開鍵ファイルを表示できるようにします。
オンプレミスの Windows デバイス
公開鍵情報を表示するには、次の操作を実行します。
PuTTYgen を起動します。
[読み込み] をクリックします。
.ppk
または.pem
ファイルを選択します。PuTTYgen に公開鍵情報が表示されます。
キーペアがバインドされている ECS インスタンス
Linux インスタンスに接続します。
詳細については、「VPC で SSH キーペアを使用して Workbench で Linux インスタンスに接続する」をご参照ください。
次のコマンドを実行して、SSH キーペアの公開鍵情報を表示します。
sudo cat ~/.ssh/authorized_keys
説明公開鍵情報は
~/.ssh/authorized_keys
ファイルに保存されます。 インスタンスでファイルを開いて、公開鍵情報を表示します。
キーペアの公開鍵をインポートしてキーペアをインポートする
キーペアの暗号化でサポートされている方法
ECS にインポートする公開鍵は、
Base64
でエンコードされ、次のいずれかの暗号化方法をサポートしている必要があります。rsa
dsa
ssh-rsa
ssh-dss
ecdsa
ssh-rsa-cert-v00@openssh.com
ssh-dss-cert-v00@openssh.com
ssh-rsa-cert-v01@openssh.com
ssh-dss-cert-v01@openssh.com
ecdsa-sha2-nistp256-cert-v01@openssh.com
ecdsa-sha2-nistp384-cert-v01@openssh.com
ecdsa-sha2-nistp521-cert-v01@openssh.com
ECS コンソールでキーペアをインポートする
次の手順を実行して、ECS コンソールでキーペアを自動的に作成します。
ECS コンソール - キーペア に移動します。
上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。
[キーペア] ページで、[SSH キーペアの作成] をクリックします。
[ SSH キーペアの作成] ダイアログボックスで、次のパラメータを構成します。
名前: キーペアの名前は 2 ~ 128 文字で、文字、数字、ピリオド(.)、アンダースコア(_)、ハイフン(-)、コロン(:) を使用できます。 名前に特殊文字や数字を先頭に付けることはできません。
作成タイプ: [インポート] を選択します。 このオプションを選択した場合は、公開鍵ファイルを提供する必要があります。
公開鍵: インポートする公開鍵ファイルの内容を入力します。
リソースグループ: 管理を容易にするために、キーペアをリソースグループに追加できます。 詳細については、「リソースグループ」をご参照ください。
タグ: リソースの検索と集約を容易にするために、キーペアに 1 つ以上のタグを追加できます。 詳細については、「タグ」をご参照ください。
[OK] をクリックします。
API オペレーションを呼び出してキーペアをインポートする
ImportKeyPair
オペレーションを呼び出して、キーペアの公開鍵をインポートすることで、既存のキーペアをインポートできます。 詳細については、「ImportKeyPair」をご参照ください。
インスタンスにキーペアをバインドする
ECS インスタンスの作成時または作成後に、SSH キーペアを ECS インスタンスにバインドできます。 SSH キーペアを使用して ECS インスタンスに安全に接続し、マルチユーザーアクセスを管理できます。これにより、自動化された操作とバッチ操作が容易になります。
考慮事項
このセクションの操作を実行して、ECS インスタンスの最初のログインユーザーにのみキーペアをバインドできます。 インスタンスの最初のログインユーザーは、インスタンスの作成時に選択したログインユーザーです。 別のユーザーにキーペアをバインドする方法の詳細については、「SSH 経由のパスワードなしログインのためにインスタンスにキーペアをバインドする」をご参照ください。
キーペアをインスタンスにバインドした後、インスタンスを再起動する必要があります。そうしないと、バインドが有効になりません。 インスタンスの再起動がビジネスに影響を与えないようにするには、「SSH 経由のパスワードなしログインのためにインスタンスにキーペアをバインドする」で説明されている操作を実行して、キーペアをインスタンスにバインドできます。
ECS コンソールでは、1 つのインスタンスに 1 つの SSH キーペアのみバインドでき、同じ SSH キーペアを複数のインスタンスにバインドできます。 別の SSH キーペアがバインドされているインスタンスに SSH キーペアをバインドすると、新しいキーペアは元のキーペアを置き換えます。
バインドにより、ログイン方法が変更されます。 キーペアをインスタンスにバインドする前に ECS インスタンスに SSH パスワードベースのログインが使用されている場合、キーペアをインスタンスにバインドした後は SSH パスワードベースのログインが無効になります。
ECS コンソールでキーペアをバインドする
次の手順を実行して、ECS コンソールでインスタンスにキーペアをバインドします。
ECS コンソール - キーペア に移動します。
上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。
バインドする SSH キーペアを見つけ、[バインド] 列の [アクション] をクリックします。
[ECS インスタンスの選択] 列で、SSH キーペアをバインドするインスタンスを選択し、[>] アイコンをクリックして、インスタンスを [選択済み] 列に移動します。 [次へ] をクリックします。
説明Windows インスタンスを選択することはできません。 SSH キーペアは Linux インスタンスにバインドできますが、Windows インスタンスにはバインドできません。
プロンプトに従ってインスタンスを再起動する方法を選択するか、適切な時期にインスタンスを再起動します。 インスタンスが再起動されると、新しいキーペアが有効になります。
API オペレーションを呼び出してキーペアをバインドする
AttachKeyPair
オペレーションを呼び出して、Linux インスタンスにキーペアをバインドできます。 詳細については、「AttachKeyPair」をご参照ください。
インスタンスからキーペアのバインドを解除する
SSH キーペアが不要になった場合は、関連する ECS インスタンスから SSH キーペアのバインドを解除して、インスタンスのセキュリティを向上させたり、アクセス許可を制限したりできます。 たとえば、SSH キーペアの期限が切れている場合、SSH キーペアがローテーションされている場合、またはユーザーが SSH キーペアがバインドされている ECS インスタンスにアクセスする必要がなくなった場合に、SSH キーペアのバインドを解除できます。
この方法を使用して ECS インスタンスからキーペアのバインドを解除した後、バインド解除を有効にするには、インスタンスを再起動する必要があります。 ECS インスタンスを再起動したくない場合は、「SSH 経由のパスワードなしログインのためにインスタンスにキーペアをバインドする」の説明に従って、インスタンスからキーペアのバインドを解除します。
ECS コンソールでキーペアのバインドを解除する
次の手順を実行して、ECS コンソールでインスタンスからキーペアのバインドを解除します。
ECS コンソール - キーペア に移動します。
上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。
バインドを解除する SSH キーペアを見つけ、[バインド解除] 列の [アクション] をクリックします。
[ECS インスタンスの選択] 列で、SSH キーペアのバインドを解除するインスタンスを選択し、[>] アイコンをクリックして、インスタンスを [選択済み] 列に移動します。 [次へ] をクリックします。
プロンプトに従ってインスタンスを再起動する方法を選択するか、適切な時期にインスタンスを再起動します。 インスタンスが再起動されると、キーペアはインスタンスからバインド解除されます。
API オペレーションを呼び出してキーペアのバインドを解除する
DetachKeyPair
オペレーションを呼び出して、Linux インスタンスから SSH キーペアのバインドを解除できます。 詳細については、「DetachKeyPair」をご参照ください。
キーペアを削除する
キーペアがインスタンスにバインドされている場合、キーペアを削除することはできません。
ECS コンソールでキーペアを削除する
ECS コンソールでキーペアを削除するには、次の手順を実行します。
ECS コンソール - キーペア に移動します。
上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。
[キーペア] ページで、削除する SSH キーペアを見つけ、[削除] 列の [アクション] をクリックします。
プロンプトに従ってキーペアを削除します。
API オペレーションを呼び出してキーペアを削除する
DeleteKeyPairs
オペレーションを呼び出して、SSH キーペアを削除できます。 詳細については、「DeleteKeyPairs」をご参照ください。