產生 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 位元。
您可以使用 -t
ssh-keygen ** 工具中的 ** 參數,從支援的加密演算法中進行選取:
演算法 | 指令 |
---|---|
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)。
{: caption="圖 1. 使用 PuTTY 金鑰產生器"caption-side =" bottom "} 產生 SSH 金鑰組
在 PuTTY 加密金鑰產生器中,按一下 要產生的加密金鑰類型的適當選項,即可選取其中一種支援的加密演算法。 對於 ECDSA 選項,將顯示一個下拉選項,在其中必須另外選取 要用於產生此金鑰的曲線(nistp256
、nistp384
或 nistp521
)。
然後,您必須按適當的按鈕( 儲存公開金鑰或 儲存私密金鑰),將私密金鑰和(選用)公開金鑰儲存為個別的檔案。 若要在建立虛擬伺服器時重複使用以這種方式儲存的公開金鑰,請務必使用 Hyper Protect Virtual Servers 可以識別的 OpenSSH 公開金鑰格式。
您必須將金鑰儲存在安全位置,並備份金鑰。 「虛擬伺服器」升級實務範例需要使用用來建立虛擬伺服器的原始金鑰進行簽署。
若要使用 PuTTY 公用 SSH 金鑰建立虛擬伺服器,有下列選項可供選擇:
- 若要在世代金鑰組之後直接建立虛擬伺服器,請複製 金鑰方框中的公開金鑰。 請包含開頭的字串 'ssh-rsa',但刪除尾端的金鑰註解,如圖 2 所示。
- 若要在 PuTTY 金鑰產生器對話框已關閉後建立虛擬伺服器,可以使用已儲存檔案中 OpenSSH 公開金鑰格式的公開金鑰。
{: caption="圖 2. 來自 PuTTY 金鑰產生器 的 SSH 金鑰組,已備妥可供使用 "caption-side =" bottom "}
轉換 OpenSSH 金鑰組,以便從 PuTTY 登入虛擬伺服器
假設您有現有的虛擬伺服器,並且希望在 PuTTY 配置公用程式中配置此虛擬伺服器,以便能便利地登入到此伺服器。 您是使用現有 OpenSSH 金鑰組建立的此虛擬伺服器。 此情境說明了如何轉換現有 OpenSSH 私密金鑰,以從 PuTTY 配置輕鬆登入此虛擬伺服器。 為此,您需要瞭解如何將相關的 OpenSSH 私密金鑰轉換為 PuTTY 格式。
-
從 轉換中選取 匯入金鑰。 瀏覽以找到現有 OpenSSH 私密金鑰檔並將其開啟。
{: caption="圖 3. 將 OpenSSH 私密金鑰匯入至 PuTTY"caption-side =" bottom "}
-
使用檔案類型 ** 儲存 **PuTTY
.ppk
格式的私密金鑰。{: caption="Figure 4. 將 OpenSSH 私密金鑰轉換為 PuTTY"caption-side =" bottom "}
-
在 PuTTY 中配置虛擬伺服器,如在 Windows 中使用 PuTTY 配置登入中所述。