本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為您的 Amazon EC2 執行個體建立金鑰對
您可以使用 Amazon EC2 來建立金鑰對,或使用第三方工具產生金鑰對,然後再將其匯入 Amazon EC2。
Amazon EC2 可支援 Linux 和 Windows 執行個體的 2048位元 SSH-2 RSA 金鑰。Amazon EC2 也支援 Linux 執行個體上的 ED25519 金鑰。
如需有關如何在建立金鑰對後連線至執行個體的說明,請參閱 使用 SSH 連線至您的 Linux 執行個體 和 使用 RDP 連線至您的 Windows 執行個體。
使用 Amazon EC2 建立金鑰對
使用 Amazon EC2 建立金鑰對時,公有金鑰會儲存在 Amazon EC2 中,而您可儲存私有金鑰。
每個區域最多可建立 5,000個金鑰對。若要申請增加,請建立支援案例。如需詳細資訊,請參閱 支援 使用者指南中的建立支援案例。
使用 建立金鑰對 AWS CloudFormation
當您使用 建立新的金鑰對時 CloudFormation,私有金鑰會儲存至 AWS Systems Manager 參數存放區。參數名稱具有以下格式:
/ec2/keypair/key_pair_id
若要了解詳細資訊,請參閱 AWS Systems Manager 使用者指南中的 AWS Systems Manager 參數存放區。
使用 建立金鑰對 CloudFormation
-
在範本中指定 AWS::EC2::KeyPair 資源。
Resources: NewKeyPair: Type: 'AWS::EC2::KeyPair' Properties: KeyName: new-key-pair -
按如下說明,使用 describe-key-pairs 命令以取得金鑰對 ID。
aws ec2 describe-key-pairs --filters Name=key-name,Values=new-key-pair--query KeyPairs[*].KeyPairId --output text以下為範例輸出。
key-05abb699beEXAMPLE -
按如下說明,使用 get-parameter 命令以取得金鑰參數,並將金鑰材料儲存在
.pem檔案中。aws ssm get-parameter --name /ec2/keypair/key-05abb699beEXAMPLE--with-decryption --query Parameter.Value --output text >new-key-pair.pem
所需的 IAM 許可
若要讓 代表您 CloudFormation 管理參數存放區參數, CloudFormation 或您的使用者擔任的 IAM 角色必須具有下列許可:
-
ssm:PutParameter– 授予許可,以建立私有金鑰材料的參數。 -
ssm:DeleteParameter- 准許刪除用來存放私有金鑰材料的參數。無論金鑰對是否是由 CloudFormation匯入或建立,都需要此許可。
當 CloudFormation 刪除由堆疊建立或匯入的金鑰對時,它會執行許可檢查,以判斷您是否具有刪除參數的許可,即使它僅在建立金鑰對時 CloudFormation 建立參數,而不是在匯入金鑰對時建立參數。 會使用與您帳戶中任何參數不相符的建構參數名稱來 CloudFormation 測試所需的許可。因此,您可能會在 AccessDeniedException 錯誤訊息中看到虛構參數名稱。
使用第三方工具來建立金鑰對,然後將公有金鑰匯入 Amazon EC2
您可以不使用 Amazon EC2 來建立金鑰對,而改用第三方工具來建立 RSA 或 ED25519 金鑰對,然後再將公有金鑰匯入 Amazon EC2。
金鑰對的需求
-
支援的類型:
-
(Linux 與 Windows) RSA
-
(僅限 Linux) ED25519
注意
Windows 執行個體不支援 ED25519 金鑰。
-
Amazon EC2 不接受 DSA 金鑰。
-
-
支援的格式:
-
OpenSSH 公有金鑰格式 (若為 Linux,
~/.ssh/authorized_keys中的格式)。 -
(僅限 Linux) 如果您在使用 EC2 Instance Connect API 時以 SSH 連線,則還支援 SSH2 格式。
-
SSH 私有金鑰檔案格式必須是 PEM 或 PPK
-
(僅 RSA) Base64 編碼的 DER 格式
-
(僅 RSA) 如 RFC 4716
中所指定的 SSH 公有金鑰檔案格式
-
-
支援的長度:
-
1024、2048 和 4096。
-
(僅限 Linux) 如果您在使用 EC2 Instance Connect API 時以 SSH 連線,則支援的長度為 2048 和 4096。
-
使用第三方工具來產生金鑰對
-
使用您自選的第三方工具來產生金鑰對 例如:您可以使用 ssh-keygen (標準 OpenSSH 安裝隨附的工具)。或者,Java、Ruby、Python 和其他多種程式設計語言提供了標準程式庫,您可以使用這些程式庫來產生金鑰對。
重要
私有金鑰必須是 PEM 或 PPK 格式。例如:使用
ssh-keygen -m PEM來產生 PEM 格式的 OpenSSH 金鑰。 -
將公有金鑰儲存到本機檔案。例如,
~/.ssh/my-key-pair.pub(Linux、macOS) 或C:\keys\my-key-pair.pub(Windows)。此檔案的副檔名不重要。 -
將私有金鑰儲存到具有
.pem或.ppk副檔名的本機檔案。例如,~/.ssh/my-key-pair.pem或~/.ssh/my-key-pair.ppk(Linux、macOS) 或者C:\keys\my-key-pair.pem或C:\keys\my-key-pair.ppk(Windows)。副檔名很重要,因為根據您用來連線至執行個體的工具而定,您將需要特定的檔案格式。OpenSSH 會需要.pem檔案,而 PuTTY 則需要.ppk檔案。重要
將私有金鑰檔案存放在安全的地方。您在啟動執行個體時需要提供公有金鑰的名稱,且每次連線至執行個體時也需要提供對應的私有金鑰。
建立金鑰對之後,請使用以下其中一個方法,將您的公有金鑰匯入 Amazon EC2。