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

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

驗證金鑰對的指紋

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

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

如何計算指紋

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

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

用於計算指紋的雜湊函數
金鑰對來源 RSA 金鑰對
由 Amazon EC2 建立 SHA-1
匯入至 Amazon EC2 MD5¹

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

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

如果計劃使用相同的金鑰對連線至不同 AWS 區域,您必須將公有金鑰匯入至要在其中使用公有金鑰的所有區域。如果您使用 Amazon EC2 來建立金鑰對,則可以 擷取公有金鑰資料,以便將公有金鑰匯入至其他區域。

注意

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

從私有金鑰產生指紋

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

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

  • 如果是使用 Amazon EC2 建立金鑰對

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

    openssl pkcs8 -in path_to_private_key -inform PEM -outform DER -topk8 -nocrypt | openssl sha1 -c
  • 如果您已將公有金鑰匯入 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 來產生指紋。

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