為您的 Amazon EC2執行個體建立金鑰對 - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

為您的 Amazon EC2執行個體建立金鑰對

您可以使用 Amazon EC2來建立金鑰對,或使用第三方工具來建立金鑰對,然後將其匯入 Amazon EC2。

Amazon EC2支援 Linux 和 Windows 執行個體的 2048 位元 SSH-2 RSA金鑰。Amazon EC2也支援 Linux 執行個體的ED25519金鑰。

如需建立金鑰對後如何連線至執行個體的指示,請參閱 使用 Connect 到您的 Linux 執行個體 SSH使用 連線至 Windows 執行個體 RDP

使用 Amazon 建立金鑰對 EC2

當您使用 Amazon 建立金鑰對時EC2,公有金鑰會儲存在 Amazon 中EC2,而您會存放私有金鑰。

每個區域最多可以建立 5,000 個金鑰對。若要請求增加,請建立支援案例。如需詳細資訊,請參閱 AWS Support 使用者指南中的建立支援案例

Console
使用 Amazon 建立金鑰對 EC2
  1. 在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/

  2. 請在導覽窗格的 Network & Security (網路與安全性) 下方,選擇 Key Pairs (金鑰對)。

  3. 選擇 Create key pair (建立金鑰對)

  4. 對於 Name (名稱),輸入金鑰對的描述性名稱。Amazon 會將公有金鑰與您指定為金鑰名稱的名稱建立EC2關聯。金鑰名稱最多可包含 255 ASCII 個字元。它不能包括前置或結尾空格。

  5. 選取適合您作業系統的金鑰對類型:

    (Linux 執行個體) 針對金鑰對類型 ,選擇 RSAED25519

    (Windows 執行個體) 針對金鑰對類型 ,選擇 RSAED25519 Windows 執行個體不支援 金鑰。

  6. 針對 Private key file format (私有金鑰檔案格式),選擇私有金鑰的儲存格式。若要以可與 Open 搭配使用的格式儲存私有金鑰SSH,請選擇 pem 。若要以可與 Pu 搭配使用的格式儲存私有金鑰TTY,請選擇 ppk

  7. 若要向公有金鑰新增標籤,請選擇 Add tag (新增標籤),然後輸入標籤的金鑰和值。針對每個標籤,重複執行上述動作。

  8. 選擇 Create key pair (建立金鑰對)

  9. 您的瀏覽器會自動下載私有金鑰檔案。基礎檔案名稱是您所指定的金鑰對名稱,而副檔名是根據您選擇的檔案格式所決定。將私有金鑰檔案存放在安全的地方。

    重要

    這是您儲存私有金鑰檔案的唯一機會。

  10. 如果您計劃在 macOS 或 Linux 電腦上使用SSH用戶端來連線至 Linux 執行個體,請使用下列命令來設定私有金鑰檔案的許可,以便只有您才能讀取。

    chmod 400 key-pair-name.pem

    如果您未設定這些許可,則無法使用此金鑰對來連接至您的執行個體。如需詳細資訊,請參閱錯誤:未受保護的私有金鑰檔案

AWS CLI
使用 Amazon 建立金鑰對 EC2
  1. 使用 create-key-pair 命令來產生金鑰對,並將私有金鑰儲存至.pem檔案。

    對於 --key-name,指定公有金鑰的名稱。名稱最多可達 255 ASCII 個字元。

    對於 --key-type,指定 rsaed25519. 如果您未包含 --key-type 參數,預設會建立 rsa 金鑰。請注意,Windows 執行個體不支援ED25519金鑰。

    對於 --key-format,指定 pemppk。如果您未包含 --key-format 參數,預設會建立 pem 檔案。

    --query "KeyMaterial" 將私有金鑰材料列印到輸出。

    --output text > my-key-pair.pem 會將私有金鑰資料儲存在有特定副檔名的檔案中。副檔名可為 .pem.ppk。私有金鑰的名稱可以與公有金鑰名稱不同,但為了方便使用,請使用相同的名稱。

    aws ec2 create-key-pair \ --key-name my-key-pair \ --key-type rsa \ --key-format pem \ --query "KeyMaterial" \ --output text > my-key-pair.pem
  2. 如果您計劃在 macOS 或 Linux 電腦上使用SSH用戶端來連線至 Linux 執行個體,請使用下列命令來設定私有金鑰檔案的許可,以便只有您才能讀取。

    chmod 400 key-pair-name.pem

    如果您未設定這些許可,則無法使用此金鑰對來連接至您的執行個體。如需詳細資訊,請參閱錯誤:未受保護的私有金鑰檔案

PowerShell
使用 Amazon 建立金鑰對 EC2

使用 New-EC2KeyPair AWS Tools for Windows PowerShell 命令,如下所示來產生金鑰,並將其儲存至 .pem.ppk 檔案。

對於 -KeyName,指定公有金鑰的名稱。名稱最多可達 255 ASCII 個字元。

對於 -KeyType,指定 rsaed25519. 如果您未包含 -KeyType 參數,預設會建立 rsa 金鑰。請注意,Windows 執行個體不支援ED25519金鑰。

對於 -KeyFormat,指定 pemppk。如果您未包含 -KeyFormat 參數,預設會建立 pem 檔案。

KeyMaterial 將私有金鑰材料列印到輸出。

Out-File -Encoding ascii -FilePath C:\path\my-key-pair.pem 會將私有金鑰資料儲存在有特定副檔名的檔案中。副檔名可為 .pem.ppk。私有金鑰的名稱可以與公有金鑰名稱不同,但為了方便使用,請使用相同的名稱。

PS C:\> (New-EC2KeyPair -KeyName "my-key-pair" -KeyType "rsa" -KeyFormat "pem").KeyMaterial | Out-File -Encoding ascii -FilePath C:\path\my-key-pair.pem

使用 建立金鑰對 AWS CloudFormation

當您使用 建立新的金鑰對時 AWS CloudFormation,私有金鑰會儲存至 AWS Systems Manager 參數存放區。參數名稱具有以下格式:

/ec2/keypair/key_pair_id

如需詳細資訊,請參閱《AWS Systems Manager 使用者指南》中的 AWS Systems Manager 參數存放區

使用 建立金鑰對 AWS CloudFormation
  1. 在範本中指定 AWS:EC2:::KeyPair 資源。

    Resources: NewKeyPair: Type: 'AWS::EC2::KeyPair' Properties: KeyName: new-key-pair
  2. 使用 describe-key-pairs 命令以取得金鑰對的 ID。

    aws ec2 describe-key-pairs --filters Name=key-name,Values=new-key-pair --query KeyPairs[*].KeyPairId --output text

    下列為範例輸出。

    key-05abb699beEXAMPLE
  3. 使用 get-parameter 命令,如下所示取得金鑰的 參數,並將金鑰材料儲存在.pem檔案中。

    aws ssm get-parameter --name /ec2/keypair/key-05abb699beEXAMPLE --with-decryption --query Parameter.Value --output text > new-key-pair.pem
必要IAM許可

若要讓 AWS CloudFormation 代表您管理參數存放區參數, AWS CloudFormation 或您的使用者擔任IAM的角色必須具有下列許可:

  • ssm:PutParameter – 授予許可,以建立私有金鑰材料的參數。

  • ssm:DeleteParameter - 准許刪除用來存放私有金鑰材料的參數。無論金鑰對是否是由 AWS CloudFormation匯入或建立,都需要此許可。

當 AWS CloudFormation 刪除由堆疊建立或匯入的金鑰對時,它會執行許可檢查,以確定您是否具有刪除參數的許可,即使僅在建立金鑰對時 AWS CloudFormation 建立參數,而不是在匯入金鑰對時建立參數。 會使用與您帳戶中任何參數不相符的製造參數名稱來 AWS CloudFormation 測試必要的許可。因此,您可能會在 AccessDeniedException 錯誤訊息中看到虛構參數名稱。

使用第三方工具建立金鑰對,並將公有金鑰匯入 Amazon EC2

您可以使用第三方工具建立 RSA或 ED25519 金鑰對,然後將公有金鑰匯入 Amazon ,而不是使用 Amazon EC2來建立金鑰對EC2。

金鑰對的需求
  • 支援的類型:

    • (Linux 和 Windows) RSA

    • (僅限 Linux) ED25519

      注意

      ED25519 Windows 執行個體不支援 金鑰。

    • Amazon EC2不接受DSA金鑰。

  • 支援的格式:

    • 開啟SSH公有金鑰格式 (對於 Linux,則為 中的格式~/.ssh/authorized_keys

    • (僅限 Linux) 如果您在使用 EC2 Instance Connect SSH時使用 連線API,則也支援 SSH2 格式。

    • SSH 私有金鑰檔案格式必須為 PEM或 PPK

    • (RSA僅限 ) Base64 編碼DER格式

    • (RSA僅限 ) SSH 公有金鑰檔案格式,如 RFC 4716 中所指定

  • 支援的長度:

    • 1024、2048 和 4096。

    • (僅限 Linux) 如果您在使用 EC2 Instance Connect SSH時使用 連線API,則支援的長度為 2048 和 4096。

使用第三方工具來產生金鑰對
  1. 使用您自選的第三方工具來產生金鑰對 例如,您可以使用 ssh-keygen(標準 OpenSSH 安裝隨附的工具)。或者,Java、Ruby、Python 和許多其他程式設計語言提供標準程式庫,可用於建立金鑰對。

    重要

    私有金鑰必須是 PEM或 PPK 格式。例如,使用 ssh-keygen -m PEM 產生 PEM 格式的 OpenSSH 金鑰。

  2. 將公有金鑰儲存到本機檔案。例如, ~/.ssh/my-key-pair.pub (Linux、macOS ) 或 C:\keys\my-key-pair.pub(Windows)。此檔案的副檔名不重要。

  3. 將私有金鑰儲存到具有 .pem.ppk 副檔名的本機檔案。例如, ~/.ssh/my-key-pair.pem~/.ssh/my-key-pair.ppk(Linux、macOS ) 或 C:\keys\my-key-pair.pemC:\keys\my-key-pair.ppk(Windows)。副檔名很重要,因為根據您用來連線到執行個體的工具,您將需要特定的檔案格式。OpenSSH 需要.pem檔案,而 PuTTY 需要.ppk檔案。

    重要

    將私有金鑰檔案存放在安全的地方。您在啟動執行個體時需要提供公有金鑰的名稱,且每次連線至執行個體時也需要提供對應的私有金鑰。

建立金鑰對後,請使用下列其中一種方法來將公有金鑰匯入 Amazon EC2。

Console
將公有金鑰匯入 Amazon EC2
  1. 在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/

  2. 在導覽窗格中,選擇 Key Pairs (金鑰對)

  3. 選擇 Import key pair (匯入金鑰對)

  4. Name (名稱) 處,輸入公有金鑰的描述性名稱。名稱最多可包含 255 ASCII 個字元。它不能包括前置或結尾空格。

    注意

    當您從EC2主控台連線至執行個體時,主控台會針對私有金鑰檔案的名稱建議此名稱。

  5. 選取 Browse (瀏覽) 以導覽並選取您的公有金鑰,或將公有金鑰的內容貼到 Public key contents (公有金鑰內容) 欄位。

  6. 選擇 Import key pair (匯入金鑰對)

  7. 確認您匯入的公開金鑰出現在金鑰對清單中。

AWS CLI
將公有金鑰匯入 Amazon EC2

使用 import-key-pair AWS CLI 命令。

確認是否已成功匯入金鑰對

使用 describe-key-pairs AWS CLI 命令。

PowerShell
將公有金鑰匯入 Amazon EC2

使用 Import-EC2KeyPair AWS Tools for Windows PowerShell 命令。

確認是否已成功匯入金鑰對

使用 Get-EC2KeyPair AWS Tools for Windows PowerShell 命令。