

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

# 描述金鑰對
<a name="describe-keys"></a>

您可以描述存放在 Amazon EC2 中的金鑰對。您也可以擷取公有金鑰材料，並辨識啟動時指定的公有金鑰。

**Topics**
+ [描述金鑰對](#describe-public-key)
+ [擷取公有金鑰資料](#retrieving-the-public-key)
+ [識別啟動時指定的公有金鑰](#identify-key-pair-specified-at-launch)

## 描述金鑰對
<a name="describe-public-key"></a>

您可以查看存放於 Amazon EC2 中公有金鑰的以下資訊：公有金鑰名稱、ID、金鑰類型、指紋、公有金鑰資料、Amazon EC2 建立金鑰的日期和時間 (UTC 時區) (若金鑰是由第三方工具所建立，則為該金鑰匯入 Amazon EC2 的日期及時間)，以及任何與公有金鑰相關聯的標籤。

------
#### [ Console ]

**如需檢視您的金鑰對的相關資訊**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在左側導覽器中，選擇 **Key Pairs** (金鑰對)。

1. 您可以在**金鑰對**表中檢視每個公有金鑰的相關資訊。  
![\[金鑰對表。\]](http://docs.aws.amazon.com/zh_tw/AWSEC2/latest/UserGuide/images/key-pairs-describe-console.png)

1. 若要檢視公有金鑰標籤，請勾選金鑰旁的核取方塊，然後依序選取**動作**、**管理標籤**。

------
#### [ AWS CLI ]

**如需檢視金鑰對的相關資訊**  
使用 [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html) 命令。

```
aws ec2 describe-key-pairs --key-names key-pair-name
```

------
#### [ PowerShell ]

**如需檢視金鑰對的相關資訊**  
使用 [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2KeyPair.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2KeyPair.html) cmdlet。

```
Get-EC2KeyPair -KeyName key-pair-name
```

------

## 擷取公有金鑰資料
<a name="retrieving-the-public-key"></a>

您可獲取金鑰對的公有金鑰資料。下方所示為範例公有金鑰。請注意，新增了換行符號以方便閱讀。

```
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuSevGj3eYhCe53pcjqP3maAhDFcvBS7O6V
hz2ItxCih+PnDSUaw+WNQn/mZphTk/a/gU8jEzoOWbkM4yxyb/wB96xbiFveSFJuOp/d6RJhJOI0iBXr
lsLnBItntckiJ7FbtxJMXLvvwJryDUilBMTjYtwB+QhYXUMOzce5Pjz5/i8SeJtjnV3iAoG/cQk+0FzZ
qaeJAAHco+CY/5WrUBkrHmFJr6HcXkvJdWPkYQS3xqC0+FmUZofz221CBt5IMucxXPkX4rWi+z7wB3Rb
BQoQzd8v7yeb7OzlPnWOyN0qFU0XA246RA8QFYiCNYwI3f05p6KLxEXAMPLE
```

------
#### [ Private key ]

**如需使用 ssh-keygen (Linux) 來擷取公有金鑰資料**  
請在本機 Linux 或 macOS 電腦使用 **ssh-keygen** 命令。指定已將私有金鑰 (`.pem` 檔案) 下載至其中的路徑。

```
ssh-keygen -y -f /path_to_key_pair/my-key-pair.pem
```

若此 **ssh-keygen** 命令失敗，執行下面的 **chmod** 命令，確認私有金鑰檔案擁有必要的許可。

```
chmod 400 key-pair-name.pem
```

**如需使用 PuTTYgen 來擷取公有金鑰資料 (Windows)**  
請在本機 Windows 電腦啟動 PuTTYgen。選擇**載入**。選取 `.ppk` 或 `.pem` 私有金鑰檔案。PuTTYgen 會在 **Public key for pasting into OpenSSH authorized\$1keys file (貼到 OpenSSH authorized\$1keys 檔案的公有金鑰)** 下顯示公有金鑰。您也可以選擇 **Save public key (儲存公有金鑰)**、指定檔案名稱、儲存檔案，然後開啟檔案，以檢視公有金鑰。

------
#### [ AWS CLI ]

**如需擷取公有金鑰資料**  
請使用下面的 [describe-key-pairs](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html) 命令並指定 `--include-public-key` 選項。

```
aws ec2 describe-key-pairs \
    --key-names key-pair-name \
    --include-public-key \
    --query "KeyPairs[].PublicKey"
```

------
#### [ PowerShell ]

**如需擷取公有金鑰資料**  
請使用 [Get-EC2KeyPair](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2KeyPair.html) 命令。

```
(Get-EC2KeyPair -KeyName key-pair-name -IncludePublicKey $true).PublicKey
```

------
#### [ IMDSv2 ]

**Linux**  
透過執行個體執行下面的命令。

```
TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \
&& curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
```

**Windows**  
透過 Windows 執行個體執行下面的 cmdlet。

```
[string]$token = Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token-ttl-seconds" = "21600"} -Method PUT -Uri http://169.254.169.254/latest/api/token
```

```
Invoke-RestMethod -Headers @{"X-aws-ec2-metadata-token" = $token} -Method GET -Uri http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
```

------
#### [ IMDSv1 ]

**Linux**  
透過 Linux 執行個體執行下面的命令。

```
curl http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
```

**Windows**  
透過 Windows 執行個體中執行下列 cmdlet。

```
Invoke-RestMethod -uri  http://169.254.169.254/latest/meta-data/public-keys/0/openssh-key
```

------

## 識別啟動時指定的公有金鑰
<a name="identify-key-pair-specified-at-launch"></a>

如果您在啟動執行個體時指定了公有金鑰，執行個體會記錄公有金鑰名稱。即使您變更執行個體上的公有金鑰，或新增公有金鑰，執行個體的公有金鑰名稱也不會變更。

------
#### [ Console ]

**如需確定啟動時指定的公有金鑰**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 選取執行個體。

1. 請前往**詳細資訊**索引標籤，在**執行個體詳細資訊**下尋找**啟動時指派的金鑰對**。

------
#### [ AWS CLI ]

**如需確定啟動時指定的公有金鑰**  
使用下面的 [describe-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) 命令。

```
aws ec2 describe-instances \
    --instance-id i-1234567890abcdef0 \
    --query "Reservations[].Instances[].KeyName" \
    --output text
```

以下為範例輸出。

```
key-pair-name
```

------
#### [ PowerShell ]

**如需確定啟動時指定的公有金鑰**  
使用 [Get-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) cmdlet。

```
(Get-EC2Instance -InstanceId i-1234567890abcdef0).Instances | Select KeyName
```

以下為範例輸出。

```
KeyName
-------
key-pair-name
```

------