SSH経由でElastic Compute Service (ECS) Linuxインスタンスに接続する場合、認証用のパスワードを入力しなくてもキーペアを指定できます。
SSHキーペアの紹介
SSHキーペアとは何ですか?
SSHキーペアは、SSH経由でECSインスタンスに接続するために使用される資格情報です。 SSHキーペアは、公開キーと秘密キーで構成されます。 パブリックキーはインスタンスに自動的に保存されます。 秘密鍵は、オンプレミスのコンピューターに安全に保持する必要があります。 キーはペアで使用する必要があります。 公開鍵はデータの暗号化に使用され、秘密鍵はデータの復号に使用されます。 公開鍵を使用して暗号化されたデータは、秘密鍵を使用してのみ復号できます。
SSHキーペアベース認証の利点
[セキュリティおよび信頼性]
SSHキーペアのセキュリティ強度は、通常のパスワードよりも高くなっています。 公開鍵から秘密鍵をリバースエンジニアリングすることの難しさは非常に高く、これはブルートフォースクラッキングの脅威を排除する。
利便性
SSHキーペアを使用して、パスワード不要のSSHコマンドまたは関連ツールを使用してインスタンスに接続できます。
SSHキーペアを使用して、複数のLinuxインスタンスに同時に接続できます。これは、Linuxインスタンスをより便利な方法でバッチ管理できる推奨されるログイン方法です。
SSHキーペアの仕組み
次の図は、SSHキーペアベースの認証プロセスの簡略化を示しています。 クライアントは、サーバへのログオン要求を開始する。 要求を受信すると、サーバは、公開鍵を使用することによってランダムな文字列を暗号化し、暗号化された文字列でクライアントに応答する。 次に、クライアントは秘密鍵を使用して文字列を復号し、文字列をサーバーに返します。 サーバーは、2つの文字列が一致しているかどうかを確認してクライアントを認証します。
キーペアの管理
すべてのキーペアを表示
ECSコンソールですべてのキーペアを表示
次の図に示すように、ECSコンソールの [キーペア] ページでキーペアを管理できます。 [キーペア] ページに移動するには、次の手順を実行します。 [キーペア] ページでは、現在のリージョンのすべてのキーペアに関する情報を表示し、キーペアを管理できます。
左側のナビゲーションウィンドウで、 .
上部のナビゲーションバーで、リソースが属するリージョンとリソースグループを選択します。
API操作を呼び出してすべてのキーペアを表示
特定のリージョンのすべてのキーペアを照会するには、
DescribeKeyPairs
操作を呼び出します。 詳細については、「DescribeKeyPairs」をご参照ください。
キーペアの作成
ECSコンソールでのキーペアの作成
重要ECSコンソールでキーペアを作成できます。 キーペアを作成すると、キーペアの秘密鍵が自動的にダウンロードされます。 秘密鍵を安全に保存し、機密性を確保する必要があります。 ECSは公開鍵を保存しますが、秘密鍵は保存しません。 SSHキーペアがバインドされているECSインスタンスに接続するには、秘密鍵を指定する必要があります。
リージョン内に最大500のSSHキーペアを持つことができます。
次の手順を実行して、ECSコンソールでキーペアを自動的に作成します。
[キーペア] ページで、[SSHキーペアの作成] をクリックします。
[SSHキーペアの作成] ダイアログボックスで、次のパラメーターを設定します。
名前: キーペアの名前は2 ~ 128文字で、英数字、ピリオド (.) 、アンダースコア (_) 、ハイフン (-) 、およびコロン (:) を使用できます。 名前は特殊文字または数字で始めることはできません。
作成タイプ: [自動作成] を選択します。 システムは自動的にキーペアを作成します。 秘密鍵は、鍵ペアの作成後に自動的にダウンロードされます。 秘密鍵は一度だけダウンロードできます。 秘密鍵ファイルを安全に保存する必要があります。
リソースグループ: 管理を容易にするために、キーペアをリソースグループに割り当てることができます。 詳細については、「リソースグループ」をご参照ください。
タグ: リソースの検索と集計を容易にするために、1つ以上のタグをキーペアに追加できます。 詳細については、「タグ」をご参照ください。
[OK] をクリックします。
キーペアが作成されると、ブラウザは秘密鍵ファイル (<key pair name> .pem) をコンピュータにダウンロードします。
API操作を呼び出してキーペアを作成する
CreateKeyPair
を呼び出して、SSHキーペアを作成できます。 詳細については、「CreateKeyPair」をご参照ください。
公開キー情報の表示
キーペアの公開キーに関する情報を表示するには、次の手順を実行して、秘密キーから公開キーを取得します。
オンプレミスLinuxまたはmacOSデバイス
を実行します。Run thessh-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コンソールでキーペアを自動的に作成します。
[キーペア] ページで、[SSHキーペアの作成] をクリックします。
[SSHキーペアの作成] ダイアログボックスで、次のパラメーターを設定します。
名前: キーペアの名前は2 ~ 128文字で、英数字、ピリオド (.) 、アンダースコア (_) 、ハイフン (-) 、およびコロン (:) を使用できます。 名前は特殊文字または数字で始めることはできません。
作成タイプ: [インポート] を選択します。 このオプションを選択する場合は、公開鍵ファイルを指定する必要があります。
公開鍵: インポートする公開鍵ファイルの内容を入力します。
リソースグループ: キーペアをリソースグループに追加して、管理を容易にします。 詳細については、「リソースグループ」をご参照ください。
タグ: リソースの検索と集計を容易にするために、1つ以上のタグをキーペアに追加できます。 詳細については、「タグ」をご参照ください。
[OK] をクリックします。
API操作を呼び出してキーペアをインポートする
ImportKeyPair
操作を呼び出して、キーペアの公開キーをインポートして既存のキーペアをインポートできます。 詳細については、「ImportKeyPair」をご参照ください。
キーペアのインスタンスへのバインド
ECSインスタンスの作成時または作成後に、SSHキーペアをECSインスタンスにバインドできます。 SSHキーペアを使用して、ECSインスタンスに安全に接続し、マルチユーザーアクセスを管理できます。これにより、自動化およびバッチ操作が容易になります。
考慮事項
このセクションの操作を実行して、ECSインスタンスの初期ログオンユーザーにのみキーペアをバインドできます。 インスタンスの初期ログインユーザーは、インスタンスの作成時に選択したログインユーザーです。
バインドを有効にするには、キーペアをインスタンスにバインドした後、インスタンスを再起動する必要があります。
ECSコンソールでは、1つのインスタンスに1つのSSHキーペアのみをバインドし、同じSSHキーペアを複数のインスタンスにバインドできます。 別のSSHキーペアがバインドされたインスタンスにSSHキーペアをバインドすると、新しいキーペアが元のキーペアに置き換わります。
バインドによってログオン方法が変更されます。 ECSインスタンスにキーペアをバインドする前にSSHパスワードベースのログインが使用されている場合、インスタンスにキーペアをバインドするとSSHパスワードベースのログインは無効になります。
ECSコンソールでのキーペアのバインド
次の手順を実行して、ECSコンソールのインスタンスにキーペアをバインドします。
バインドするSSHキーペアを見つけて、[操作] 列の [バインド] をクリックします。
[ECSインスタンスの選択] 列で、SSHキーペアをバインドするインスタンスを選択し、> アイコンをクリックしてインスタンスを [選択済み] 列に移動します。 [次へ] をクリックします。
説明Windowsインスタンスは選択できません。 SSHキーペアは、WindowsインスタンスではなくLinuxインスタンスにバインドできます。
プロンプトに従ってインスタンスを再起動する方法を選択するか、適切な時間待ってインスタンスを再起動します。 インスタンスの再起動後、新しいキーペアが有効になります。
API操作を呼び出してキーペアをバインドする
AttachKeyPair
を呼び出して、キーペアをLinuxインスタンスにバインドできます。 詳細については、「AttachKeyPair」をご参照ください。
インスタンスからキーペアのバインド解除
SSHキーペアが不要になった場合は、関連するECSインスタンスからSSHキーペアのバインドを解除して、インスタンスのセキュリティを向上させたり、アクセス許可を制限したりできます。 たとえば、SSHキーペアの有効期限が切れた場合、またはローテーションされた場合、またはSSHキーペアがバインドされているECSインスタンスにユーザーがアクセスする必要がなくなった場合、SSHキーペアのバインドを解除できます。
この方法を使用してECSインスタンスからキーペアをバインド解除した後、バインド解除を有効にするにはインスタンスを再起動する必要があります。
ECSコンソールでのキーペアのバインド解除
次の手順を実行して、ECSコンソールのインスタンスからキーペアをバインド解除します。
バインド解除するSSHキーペアを見つけて、[操作] 列の [バインド解除] をクリックします。
[ECSインスタンスの選択] 列で、SSHキーペアのバインドを解除するインスタンスを選択し、> アイコンをクリックしてインスタンスを [選択済み] 列に移動します。 [次へ] をクリックします。
プロンプトに従ってインスタンスを再起動する方法を選択するか、適切な時間待ってインスタンスを再起動します。 インスタンスの再起動後、キーペアはインスタンスからバインド解除されます。
API操作を呼び出してキーペアのバインドを解除
DetachKeyPair
を呼び出して、LinuxインスタンスからSSHキーペアのバインドを解除できます。 詳細については、「DetachKeyPair」をご参照ください。
キーペアの削除
キーペアがインスタンスにバインドされている場合、キーペアを削除することはできません。
ECSコンソールでのキーペアの削除
ECSコンソールでキーペアを削除するには、次の手順を実行します。
[キーペア] ページで、削除するSSHキーペアを見つけ、[操作] 列の [削除] をクリックします。
プロンプトに従ってキーペアを削除します。
API操作を呼び出してキーペアを削除する
DeleteKeyPairs
を呼び出して、SSHキーペアを削除できます。 詳細については、「DeleteKeyPairs」をご参照ください。