

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

# 驗證金鑰對的指紋
<a name="verify-keys"></a>

若要驗證金鑰對的指紋，請將 Amazon EC2 主控台**金鑰對**頁面上顯示的指紋，或由 [describe-key-pairs](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-key-pairs.html) 命令傳回的指紋，與您使用本機電腦上的私密金鑰產生的指紋進行比較。這些指紋應該相符。

當 Amazon EC2 計算指紋時，Amazon EC2 可能會使用 `=` 字元向指紋附加填補。其他工具，例如 **ssh-keygen**，可能會忽略此填補。

如果您要嘗試驗證 Linux EC2 執行個體的指紋，而不是金鑰對的指紋，請參閱[取得執行個體指紋](connection-prereqs-general.md#connection-prereqs-fingerprint)。

## 如何計算指紋
<a name="how-ec2-key-fingerprints-are-calculated"></a>

Amazon EC2 使用不同的雜湊函數來計算 RSA 和 ED25519 金鑰對的指紋。此外，對於 RSA 金鑰對，Amazon EC2 使用不同的雜湊函數來計算指紋，具體取決於金鑰對是由 Amazon EC2 建立或是匯入至 Amazon EC2。

下表列出了針對由 Amazon EC2 建立和匯入至 Amazon EC2 的 RSA 和 ED25519 金鑰對，用來計算其指紋的雜湊函數。


**(Linux 執行個體) 用於計算指紋的雜湊函數**  

| 金鑰對來源 | RSA 金鑰對 (Windows 和 Linux) | ED25519 金鑰對 (Linux) | 
| --- | --- | --- | 
| 由 Amazon EC2 建立 | SHA-1 | SHA-256 | 
| 匯入至 Amazon EC2 | MD5¹ | SHA-256 | 

¹ 如果您將公有 RSA 金鑰匯入至 Amazon EC2，則會使用 MD5 雜湊函數來計算指紋。無論您如何建立金鑰對 (例如透過使用第三方工具，或從使用 Amazon EC2 建立的現有私有金鑰產生新的公有金鑰)，都是如此。

## 在不同區域中使用相同的金鑰對
<a name="when-using-same-key-pair-in-different-regions"></a>

如果您計劃使用相同的金鑰對來連接到不同 中的執行個體 AWS 區域，則必須將公有金鑰匯入您將使用該金鑰的所有 區域。如果您使用 Amazon EC2 來建立金鑰對，則可以 [擷取公有金鑰資料](describe-keys.md#retrieving-the-public-key)，以便將公有金鑰匯入至其他區域。

**注意**  
如果您使用 Amazon EC2 建立 RSA 金鑰對，然後使用 Amazon EC2 私有金鑰產生公有金鑰，則匯入的公有金鑰將具有與原始公有金鑰不同的指紋。這是因為使用 Amazon EC2 建立的原始 RSA 金鑰的指紋是使用 SHA-1 雜湊函數計算，而匯入的 RSA 金鑰的指紋則使用 MD5 雜湊函數計算。
對於 ED25519 金鑰對，因為使用相同的 SHA-256 雜湊函數來計算指紋，所以無論是由 Amazon EC2 建立或是匯入至 Amazon EC2，指紋均相同。

## 從私有金鑰產生指紋
<a name="generate-fingerprint-from-private-key"></a>

使用下列命令之一從本機電腦上的私有金鑰產生指紋。

如果您使用的是 Windows 本機電腦，您可以使用 Windows Subsystem for Linux (WSL) 來執行下列命令。使用[如何透過 WSL 在 Windows 上安裝 Linux](https://learn.microsoft.com/en-us/windows/wsl/install) 中的指示，來安裝 WSL 和 Linux 發行版本。指示中的範例是安裝 Linux 的 Ubuntu 發行版本，但您可以安裝任何發行版本。您將會收到提示，要求您重新啟動電腦以讓變更生效。
+ **如果是使用 Amazon EC2 建立金鑰對**

  如下列範例所示，使用 OpenSSL 工具來產生指紋。

  對於 RSA 金鑰對：

  ```
  openssl pkcs8 -in path_to_private_key -inform PEM -outform DER -topk8 -nocrypt | openssl sha1 -c
  ```

  (Linux 執行個體) 針對 ED25519 金鑰對：

  ```
  ssh-keygen -l -f path_to_private_key
  ```
+ **(僅限 RSA 金鑰對) 如果您已將公有金鑰匯入 Amazon EC2**

  無論您如何建立金鑰對 (例如透過使用第三方工具，或從使用 Amazon EC2 建立的現有私有金鑰產生新的公有金鑰)，您都可以遵循此程序

  如下列範例所示，使用 OpenSSL 工具來產生指紋。

  ```
  openssl rsa -in path_to_private_key -pubout -outform DER | openssl md5 -c
  ```
+ **如果您已使用 OpenSSH 7.8 或更新版本建立 OpenSSH 金鑰對，並將公有金鑰匯入至 Amazon EC2**

  如下列範例所示，使用 **ssh-keygen** 來產生指紋。

  對於 RSA 金鑰對：

  ```
  ssh-keygen -ef path_to_private_key -m PEM | openssl rsa -RSAPublicKey_in -outform DER | openssl md5 -c
  ```

  (Linux 執行個體) 針對 ED25519 金鑰對：

  ```
  ssh-keygen -l -f path_to_private_key
  ```