IBM Cloud Docs
產生 SSH 金鑰

產生 SSH 金鑰

在建立虛擬伺服器之前,您必須具有可用的私密和公開 SSH 金鑰組。 您可以重複使用現有的 SSH 金鑰組,也可以產生新的 SSH 金鑰組。 您也可以重複使用現有的 OpenSSH 金鑰組,以在 PuTTY 中使用。

  • 在建立新虛擬伺服器期間,需要將公開金鑰作為輸入。
  • 登入虛擬伺服器時需要私密金鑰。 請在用戶端工作站上為此金鑰保密。

然後,此 SSH 金鑰組將用於在用戶端和新伺服器之間進行鑑別。

Hyper Protect Virtual Servers 支援下列加密演算法用於產生 SSH 金鑰:

  • ssh-rsa(預設值)
  • ssh-ed25519
  • ecdsa-sha2-nistp256
  • ecdsa-sha2-nistp384
  • ecdsa-sha2-nistp521

使用指令產生 SSH 金鑰

從所列作業系統指令行建立 SSH 金鑰組的方法,在所有此類作業系統中幾乎都相同:

  • Linux
  • Windows Subsystem for Linux (WSL)
  • 使用 Git Bash 的 Windows
  • Windows 10
  • macOS

如果您需要或想要針對 SSH 使用新的鑑別金鑰組,請從指令行執行 ssh-keygen 工具。 系統會提示您選擇金鑰檔名和通行詞組(此動作是選用性的)。

可以在下列任一者輸入所顯示的指示範例:

  • Windows 下的 Git Bash 階段作業
  • Windows 10 階段作業
  • Linux 階段作業
ssh-keygen
ssh-keygen -t rsa
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

-t-b-C 參數是選用的。

  • -t 指定金鑰類型。 預設為 -t rsa
  • -b 指定金鑰大小(以位為單位)。 預設大小為 2048 位元。
  • -C 新增註解。

因此,如果呼叫不使用任何參數的 ssh-keygen,該指令會產生一個 RSA 金鑰組,其中兩個金鑰的大小均為 2048 位元。

您可以使用 -tssh-keygen ** 工具中的 ** 參數,從支援的加密演算法中進行選取:

表 1. 支援的加密演算法
演算法 指令
ssh-rsa ssh-keygen -t rsa (預設)
ssh-ed25519 ssh-keygen -t ed25519
ecdsa-sha2-nistp256 ssh-keygen -t ecdsa -b 256
ecdsa-sha2-nistp384 ssh-keygen -t ecdsa -b 384
ecdsa-sha2-nistp521 ssh-keygen -t ecdsa -b 521

如果未指定檔名來儲存金鑰,將使用預設名稱。 私密和公開 SSH 金鑰組儲存在兩個同名檔案中。 建立虛擬伺服器所需的公用 SSH 金鑰儲存在副檔名為 .pub 的檔案中。 使用不同的方法或在不同的作業系統上產生金鑰時,所產生金鑰的格式可能會不同。 在建立虛擬伺服器期間將金鑰作為輸入來輸入時,會識別有效的格式。

將 SSH 私密金鑰儲存到 SSH 代理程式

如果使用通行詞組建立了 SSH 金鑰組,您可以將 SSH 私密金鑰新增到 SSH 代理程式。 然後,藉由 SSH 代理程式的協助,您便無需再次輸入通行詞組即可使用私密金鑰。

此作業是選用性的。

  • 執行下列指令: eval "$(ssh-agent -s)"
  • 附註:如果您的系統是 macOS Sierra 10.12.2 或更高版本,您需要修改 ~/.ssh/config 檔案,以允許將金鑰新增到代理程式,並使用金鑰鏈來儲存通行詞組:
Host *    
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_rsa
  • 輸入 ssh-add ~/.ssh/id_rsa(對於 Mac 系統,輸入 ssh-add -K ~/.ssh/id_rsa),以將 SSH 私密金鑰新增到 SSH 代理程式。 如果私密金鑰檔具有不同的名稱,請將 id_rsa 取代為檔名。

在 Windows 中使用 PuTTY 金鑰產生器產生 SSH 金鑰

PuTTY 金鑰產生器中,選取金鑰類型和金鑰大小(例如,2048 或 4096)。

使用 PuTTY 金鑰產生器來產生 SSH 金鑰組{: caption="圖 1. 使用 PuTTY 金鑰產生器"caption-side =" bottom "} 產生 SSH 金鑰組

PuTTY 加密金鑰產生器中,按一下 要產生的加密金鑰類型的適當選項,即可選取其中一種支援的加密演算法。 對於 ECDSA 選項,將顯示一個下拉選項,在其中必須另外選取 要用於產生此金鑰的曲線nistp256nistp384nistp521)。

然後,您必須按適當的按鈕( 儲存公開金鑰儲存私密金鑰),將私密金鑰和(選用)公開金鑰儲存為個別的檔案。 若要在建立虛擬伺服器時重複使用以這種方式儲存的公開金鑰,請務必使用 Hyper Protect Virtual Servers 可以識別的 OpenSSH 公開金鑰格式。

您必須將金鑰儲存在安全位置,並備份金鑰。 「虛擬伺服器」升級實務範例需要使用用來建立虛擬伺服器的原始金鑰進行簽署。

若要使用 PuTTY 公用 SSH 金鑰建立虛擬伺服器,有下列選項可供選擇:

  • 若要在世代金鑰組之後直接建立虛擬伺服器,請複製 金鑰方框中的公開金鑰。 請包含開頭的字串 'ssh-rsa',但刪除尾端的金鑰註解,如圖 2 所示。
  • 若要在 PuTTY 金鑰產生器對話框已關閉後建立虛擬伺服器,可以使用已儲存檔案中 OpenSSH 公開金鑰格式的公開金鑰。

來自 PuTTY 金鑰產生器的 SSH 金鑰組已備妥可供使用{: caption="圖 2. 來自 PuTTY 金鑰產生器 的 SSH 金鑰組,已備妥可供使用 "caption-side =" bottom "}

轉換 OpenSSH 金鑰組,以便從 PuTTY 登入虛擬伺服器

假設您有現有的虛擬伺服器,並且希望在 PuTTY 配置公用程式中配置此虛擬伺服器,以便能便利地登入到此伺服器。 您是使用現有 OpenSSH 金鑰組建立的此虛擬伺服器。 此情境說明了如何轉換現有 OpenSSH 私密金鑰,以從 PuTTY 配置輕鬆登入此虛擬伺服器。 為此,您需要瞭解如何將相關的 OpenSSH 私密金鑰轉換為 PuTTY 格式。

  1. 轉換中選取 匯入金鑰。 瀏覽以找到現有 OpenSSH 私密金鑰檔並將其開啟。

    將 OpenSSH 私密金鑰匯入至 PuTTY{: caption="圖 3. 將 OpenSSH 私密金鑰匯入至 PuTTY"caption-side =" bottom "}

  2. 使用檔案類型 ** 儲存 **PuTTY.ppk 格式的私密金鑰。

    將 OpenSSH 私密金鑰轉換為 PuTTY{: caption="Figure 4. 將 OpenSSH 私密金鑰轉換為 PuTTY"caption-side =" bottom "}

  3. PuTTY 中配置虛擬伺服器,如在 Windows 中使用 PuTTY 配置登入中所述。