驗證金鑰對的指紋 - Amazon Elastic Compute Cloud

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

驗證金鑰對的指紋

若要驗證 key pair 的指紋,請將 Amazon EC2 主控台「金鑰配對」頁面上顯示的指紋或describe-key-pairs命令傳回的指紋與您使用本機電腦上的私密金鑰產生的指紋進行比較。這些指紋應該相符。

當 Amazon EC2 計算指紋時,Amazon EC2 可能會在帶有=字符的指紋上附加填充。其他工具,例如 ssh-keygen,可能會忽略此填補。

如果您嘗試驗證 Linux EC2 執行個體的指紋,而不是 key pair 的指紋,請參閱取得執行個體指紋

如何計算指紋

Amazon EC2 使用不同的哈希函數來計算RSA和ED25519密鑰對的指紋。此外,對於RSA密鑰對,Amazon EC2 根據密 key pair 是由 Amazon 創建還是導入 AmazonEC2,使用不同的哈希函數計算指紋不同EC2。

下表列出用於計算 Amazon 建立並匯入至 Amazon EC2 的指紋RSA和ED25519金鑰配對的雜湊函數EC2。

(Linux 實例) 用於計算指紋的雜湊函數
金鑰對來源 RSA金鑰配對 (視窗及 Linux) ED25519金鑰配對
由 Amazon 創建 EC2 SHA-1 SHA-256
進口到 Amazon EC2 MD5¹ SHA-256

¹ 如果您將公開RSA金鑰匯入 AmazonEC2,則會使用MD5雜湊函數計算指紋。無論您是如何建立 key pair,例如使用第三方工具或從使用 Amazon 建立的現有私密金鑰產生新的公開金鑰,都是如此EC2。

在不同區域中使用相同的金鑰對

如果您打算使用相同的 key pair 連線至不同的執行個體 AWS 區域,則必須將公開金鑰匯入您要使用該金鑰的所有區域。如果您使EC2用 Amazon 建立 key pair,您可擷取公有金鑰資料以將公開金鑰匯入其他區域。

注意
  • 如果您使用 Amazon 建立金 RSA key pairEC2,然後從 Amazon EC2 私密金鑰產生公開金鑰,則匯入的公開金鑰將具有與原始公開金鑰不同的指紋。這是因為使用 Amazon 建立的原始金RSA鑰指紋EC2是使用 SHA -1 雜湊函數計算的,而匯入RSA金鑰的指紋則是使用MD5雜湊函數計算的。

  • 對於ED25519密鑰對,無論指紋是由 Amazon 創建還是導入 AmazonEC2,都將是相同的EC2,因為使用相同的 SHA -256 哈希函數來計算指紋。

從私有金鑰產生指紋

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

如果您使用的是 Windows 本機電腦,您可以使用適用於 Linux 的 Windows 子系統來執行下列命令 (WSL)。使用視窗 10 安裝指南中的指示來安裝WSL和 Linux 發行版本。指示中的範例是安裝 Linux 的 Ubuntu 發行版本,但您可以安裝任何發行版本。您將會收到提示,要求您重新啟動電腦以讓變更生效。

  • 如果您使用 Amazon 創建了 key pair EC2

    使用「開啟」SSL 工具產生指紋,如下列範例所示。

    對於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

    無論 key pair 的建立方式為何,您都可以遵循此程序,例如使用第三方工具或從使用 Amazon 建立的現有私密金鑰產生新的公開金鑰 EC2

    使用「開啟」SSL 工具產生指紋,如下列範例所示。

    openssl rsa -in path_to_private_key -pubout -outform DER | openssl md5 -c
  • 如果您使用 Open SSH 7.8 或更高版本創建了一個打開密 SSH key pair,並將公鑰導入 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