開始使用 SSH 金鑰
當您建立伺服器時,必須選取現有的 SSH 金鑰或產生 SSH 金鑰。 伺服器使用 SSH 金鑰透過公用金鑰加密系統來識別使用者或裝置。 SSH 金鑰是由字母-數字組合而成,對於被指定的使用者或裝置而言是獨一無二的。 您可以在控制台中建立 SSH 金鑰。 您可以使用 IBM Cloud® 主控台、CLI 和 API 新增、編輯或刪除 SSH 金鑰。 透過將 SSH 金鑰新增至伺服器,您可以使用對應的私密 SSH 金鑰而非密碼來存取伺服器。 只有在初始建立伺服器時,才能將 SSH 金鑰加入伺服器。
Linux® 伺服器建立後,您可以直接在伺服器的 ~/.ssh/
目錄中編輯金鑰。
不支援使用密碼選項來建立伺服器進行連接。 當您佈建伺服器並使用私密金鑰來連接至伺服器時,必須指定 SSH 金鑰。
支援的 SSH 金鑰類型:控制台中的 RSA 和 ED25519
IBM Cloud® Virtual Private Cloud 支援兩種不同類型的公開 SSH 金鑰。
- RSA
- ED25519
在 IBM Cloud VPC上,RSA 是預設 SSH 金鑰類型。 您可以選擇將密鑰類型變更為ED25519。 這ED25519 SSH 金鑰類型可實現稍高的效能優勢,因為它可以使用較小的金鑰提供與 RSA SSH 金鑰類型相同等級的安全性。 您可以混合使用 RSA 和 RSA 來建立虛擬伺服器執行個體和裸機伺服器ED25519 SSH 金鑰。
在 IBM Cloud控制台中,您可以進入導覽功能表> 基礎架構
> 計算 > SSH 金鑰來管理您的
SSH 金鑰。 從這裡,您可以建立、重新命名或刪除金鑰。 如果您選取建立金鑰,則該金鑰必須是 RSA SSH 金鑰類型。 您可以上傳一個ED25519 SSH 金鑰類型,您無法在 VPC 內產生。
您可以在控制台中產生RSA金鑰對。 預先存在的 RSA 和ED25519可以上傳 SSH 金鑰。 只有在作業系統支援此金鑰類型時,才能使用 Ed25519。 Ed25519 無法與 Windows 或 VMware 映像檔搭配使用。
您可以在控制台中產生RSA金鑰對。 預先存在的 RSA 和ED25519可以上傳 SSH 金鑰。
SSH 金鑰類型:RSA 和ED25519在 CLI 中
IBM Cloud® Virtual Private Cloud 支援兩種不同類型的公開 SSH 金鑰。
- RSA
- ED25519
在 IBM Cloud VPC上,RSA 是預設 SSH 金鑰類型。 您可以選擇將密鑰類型變更為ED25519。 這ED25519 SSH 金鑰類型可實現稍高的效能優勢,因為它可以使用較小的金鑰提供與 RSA SSH 金鑰類型相同等級的安全性。 您可以混合使用 RSA 和 RSA 來建立虛擬伺服器執行個體和裸機伺服器ED25519 SSH 金鑰。
- 對於 Windows 或 VMware 映像檔,您必須使用 RSA SSH 金鑰類型。 這ED25519 SSH 金鑰類型不能用於 Windows 或VMware圖片。
- 為了Linux影像,ED25519只有當作業系統的 SSH 伺服器支援該金鑰類型時,才能使用 SSH 金鑰類型。
在 CLI 中,您可以使用 --key-type
選項來指定金鑰類型。 您無法在 CLI 內建立 SSH 金鑰,只能匯入現有的 SSH 金鑰。 預設 --key-type
是 RSA。 如果您嘗試匯入ED25519 SSH 金鑰且不指定 ed25519
鍵類型,該過程失敗。
--key-type ed25519
SSH 金鑰類型:RSA 和ED25519在 API 中
IBM Cloud® Virtual Private Cloud 支援兩種不同類型的公開 SSH 金鑰。
- RSA
- ED25519
在 IBM Cloud VPC上,RSA 是預設 SSH 金鑰類型。 您可以選擇將密鑰類型變更為ED25519。 這ED25519 SSH 金鑰類型可實現稍高的效能優勢,因為它可以使用較小的金鑰提供與 RSA SSH 金鑰類型相同等級的安全性。 您可以混合使用 RSA 和 RSA 來建立虛擬伺服器執行個體和裸機伺服器ED25519 SSH 金鑰。
- 對於 Windows 或 VMware 映像檔,您必須使用 RSA SSH 金鑰類型。 這ED25519 SSH 金鑰類型不能用於 Windows 或VMware圖片。
- 為了Linux影像,ED25519只有當作業系統的 SSH 伺服器支援該金鑰類型時,才能使用 SSH 金鑰類型。
您無法在 API 內建立 SSH 金鑰,只能匯入現有的 SSH 金鑰。 您可以在主控台中產生新的 RSA SSH 金鑰對。 當您建立 SSH 金鑰時,您可以選擇複製該金鑰的 API 程式碼 Snippet。
在 API 中,您可以使用 type
變數來指定哪種類型的金鑰。 預設 type
是 RSA。 如果您嘗試匯入ED25519 SSH 金鑰且不指定 ed25519
鍵類型,該過程失敗。
"type":"ed25519"
SSH 金鑰類型:RSA 和ED25519在地形中
IBM Cloud® Virtual Private Cloud 支援兩種不同類型的公開 SSH 金鑰。
- RSA
- ED25519
在 IBM Cloud VPC上,RSA 是預設 SSH 金鑰類型。 您可以選擇將密鑰類型變更為ED25519。 這ED25519 SSH 金鑰類型可實現稍高的效能優勢,因為它可以使用較小的金鑰提供與 RSA SSH 金鑰類型相同等級的安全性。 您可以混合使用 RSA 和 RSA 來建立虛擬伺服器執行個體和裸機伺服器ED25519 SSH 金鑰。
- 對於 Windows 或 VMware 映像檔,您必須使用 RSA SSH 金鑰類型。 這ED25519 SSH 金鑰類型不能用於 Windows 或VMware圖片。
- 為了Linux影像,ED25519只有當作業系統的 SSH 伺服器支援該金鑰類型時,才能使用 SSH 金鑰類型。
您無法在 Terraform 內建立 SSH 金鑰,只能匯入現有的 SSH 金鑰。 您可以在主控台中產生新的 RSA SSH 金鑰對。
在 Terraform 中,您可以使用 type
變數來指定金鑰類型。 預設類型為 rsa
。 如果您嘗試匯入ED25519 SSH 金鑰且不指定 ed25519
鍵類型,該過程失敗。
type = "ed25519"
開始之前
當您在 VPC 的 SSH 金鑰 頁面上建立 SSH 金鑰時,可以在 IBM Cloud® Virtual Private Cloud 中產生 SSH 金鑰。 不過,如果您選擇匯入現有的 SSH 金鑰檔,請記住下列限制。
- 您的 SSH 金鑰必須是 RSA 或ED25519密鑰大小為 2048 位元或 4096 位元的密鑰類型。
- 如果您的 Mac 系統產生 3072 位元的金鑰大小 (依預設),請執行下列其中一個指令,以確定產生的金鑰是受支援的大小。
- 若為 RSA SSH 金鑰類型,請發出:
ssh-keygen -t rsa -b 4096 -C "user_ID"
- 為了ED25519 SSH 金鑰類型,問題:
ssh-keygen -t ed25519 -b 4096 -C "user_ID"
- 若為 RSA SSH 金鑰類型,請發出:
- SSH 金鑰會產生為金鑰組; 一個是公開金鑰,另一個是私密金鑰。 當您將 SSH 金鑰匯入至 VPC 時,請選取公開金鑰。 對應的私密金鑰會保留在本端工作站上,且不會匯入。
- 當您從終端機複製 SSH 金鑰以將公開金鑰新增至 VPC 時,有時會引入額外的換行,導致剖析錯誤。 若要避免此問題,請先將公開金鑰貼到文字編輯器中,並移除任何額外的換行。 然後,從文字編輯器複製公開金鑰,並將它貼到 IBM Cloud VPC 使用者介面、CLI 或 API。
尋找現有 SSH 金鑰
如果您選擇匯入現有的 SSH 金鑰檔,請尋找稱為 id_rsa.pub
或 id_ed25519.pub
且包含公開金鑰的檔案。 該檔案可能位於起始目錄下的 .ssh
目錄中,例如 /Users/<USERNAME>/.ssh/id_rsa.pub
。 RSA SSH 金鑰的公鑰檔案的內容通常以 ssh-rsa
,而公鑰檔案的內容ED25519
SSH 金鑰通常以以下開頭 ssh-ed25519
。 檔案副檔名 .pub
,表示哪個檔案包含公鑰。
產生外部 SSH 金鑰
如果您想要在 IBM Cloud VPC外部產生 SSH 金鑰,請執行 ssh-keygen
指令並遵循提示。 例如,您可以在 Linux 或 Mac 系統上執行 ssh-keygen -t rsa -C "user_ID"
指令,產生 RSA SSH 金鑰。
按 Enter 鍵以接受檔案的預設位置。 該指令會產生兩個檔案。 產生的公開金鑰在 <your key>.pub
檔案中。 對於 Windows®,您可以使用 PuTTYgen 來產生 SSH 金鑰。
如果您使用 OpenSSH 7.8 版或更高版本,並計劃存取 Windows 伺服器,請使用下列指令來產生 PEM 格式的金鑰。ssh-keygen -m PEM -t rsa -C "user_ID"
在控制台中找到現有的 SSH 金鑰
- 在 IBM Cloud控制台中,前往導航選單圖示
> 基礎架構
> 計算 > SSH 金鑰。
- 會顯示任何現有的 SSH 金鑰。
從 CLI 列出現有的 SSH 金鑰
若要使用 CLI 來檢視所有 SSH 金鑰的清單,請使用 ibmcloud is keys 指令。 指定 RESOURCE_GROUP_ID
或 RESOURCE_GROUP_NAME
變數。 如果您要列出所有資源群組,請指定 --all-resource-groups
。
ibmcloud is keys [--all-resource-groups]
欲了解更多信息,請參閱 ibmcloud 是關鍵 在 VPC CLI 參考中。
使用 API 列出現有的 SSH 金鑰
若要使用 API 列出所有 SSH 金鑰,請使用 列出所有金鑰。
curl -X GET "$vpc_api_endpoint/v1/keys?version=2023-03-30&generation=2" -H "Authorization: Bearer $iam_token"
使用 Terraform 列出現有 SSH 金鑰
若要使用 Terraform 列出所有 SSH 金鑰,請使用 ibm_is_ssh_keys。
data "ibm_is_ssh_keys" keys {}
在控制台中建立 SSH 金鑰
請使用下列步驟來建立 SSH 金鑰。 您只能建立 RSA SSH 金鑰。 為了ED25519 SSH 金鑰,您必須上傳 SSH 金鑰。
-
在 IBM Cloud控制台中,前往導航選單圖示
> 基礎架構
> 計算 > SSH 金鑰。
-
點選創造並輸入表 1 的資訊。
為 VPC 選擇建立 SSH 金鑰 欄位 值 位置 位置由區域 (特定地理區域) 和區域 (區域內的容錯資料中心) 組成。 選擇您要建立 SSH 金鑰的位置。 名稱 SSH 金鑰需要一個名稱。 資源群組 為 SSH 金鑰選擇資源群組。 標籤 您可以為 SSH 金鑰指派使用者標籤,以便輕鬆過濾 SSH 金鑰清單。 如需相關資訊,請參閱使用標籤。 存取管理標籤 存取管理標籤可協助您對特定資源套用彈性的存取原則。 欲了解更多信息,請參閱 使用標籤控制對資源的訪問 使用者介面教程。 SSH 金鑰類型 預設值為 rsa
。 您可以在主控台中產生新的 RSA 金鑰對。 預先存在的 RSA 和ED25519可以上傳 SSH 金鑰。 只有在作業系統支援此金鑰類型時,才能使用 Ed25519。 Ed25519 無法與 Windows 或 VMware 映像檔搭配使用。 -
選擇「為我產生金鑰對」。
-
選擇性地按一下 取得範例 API 呼叫,以取得含有您可以複製的所有 SSH 金鑰資訊的 API 程式碼。
-
按一下建立。
您的 SSH 金鑰現在會顯示在使用者介面上的 SSH 金鑰清單中。
在控制台中匯入 SSH 金鑰
您可以使用兩種方式來匯入 SSH 金鑰。 您可以從本端檔案上傳公開金鑰。 或者,您可以將公開金鑰貼到使用者介面中。
請使用下列步驟,從本端檔案匯入 SSH 金鑰。
-
在 IBM Cloud控制台中,前往導航選單圖示
> 基礎架構
> 計算 > SSH 金鑰。
-
按一下 建立,然後輸入表格 1 中的資訊。| 欄位 | 值 | | --- | --- | | 位置 | 位置由區域(特定地理區域)和區帶(區域內的容錯資料中心)組成。 選擇您要建立 SSH 金鑰的位置。| | 名稱 | SSH 金鑰需要名稱-我知道 | | 資源群組 | 為 SSH 金鑰選擇資源群組。| | 標籤 | 您可以將使用者標籤指派給 SSH 金鑰,以便您可以輕鬆過濾 SSH 金鑰清單。 如需相關資訊,請參閱 使用標籤-我知道| | 存取管理標籤 | 存取管理標籤可協助您在特定資源上套用彈性的存取政策。 如需相關資訊,請參閱 使用標籤控制對資源的存取權 使用者介面指導教學-我知道 |
-
選擇「提供現有公開金鑰
-
按一下上傳公開金鑰。
-
選取公開金鑰檔案,然後按一下 Open(開啟 )。 副檔名
.pub
通常會指出哪個檔案包含公開金鑰。 -
選擇性地按一下 取得範例 API 呼叫,以取得含有您可以複製的所有 SSH 金鑰資訊的 API 程式碼。
-
按一下建立。
請使用下列步驟,將公開金鑰資料貼入使用者介面,以匯入 SSH 金鑰。
如果您從終端機複製 SSH 金鑰以將金鑰新增至 VPC,則有時會引入額外換行,導致剖析錯誤。 若要避免此問題,請先將 SSH 金鑰貼到文字編輯器中,並移除任何額外的換行。 然後,從文字編輯器複製 SSH 金鑰,並將它貼至 VPC 使用者介面、CLI 或 API。
您匯入的 SSH 金鑰現在會顯示在使用者介面上的 SSH 金鑰清單中。
使用 CLI 匯入 SSH 金鑰
若要使用 CLI 匯入 SSH 金鑰,請使用 ibmcloud is key-create 指令。 您還必須指定一個 KEY_NAME
和 KEY
。 SSH 金鑰檔是 id_rsa.pub
或 id_ed25519.pub
,視您匯入的金鑰類型而定。 您可以選擇性地使用 RESOURCE_GROUP_ID
或 RESOURCE_GROUP_NAME
變數來指定資源。 欲了解更多信息,請參閱 ibmcloud 是金鑰創建 在 VPC CLI 參考指南中。
ibmcloud is key-create KEY_NAME (KEY | @KEY_FILE) [--resource-group-id RESOURCE_GROUP_ID | --resource-group-name RESOURCE_GROUP_NAME]
使用 API 匯入 SSH 金鑰
若要使用 API 來匯入 SSH 金鑰,請使用 建立金鑰。 您無法使用 API 來建立 SSH 金鑰。 但是,您可以在控制台中建立 SSH 金鑰,並從 UI 產生您需要的包含新 SSH 金鑰的 API 程式碼片段。 如果您使用使用者介面,請確保在產生 API 程式碼片段之前,先儲存您在主控台中建立的 SSH 金鑰。
針對 name
內容,指定 SSH 金鑰的名稱。 對於 public_key
內容,請輸入公開金鑰資訊。 對於 type
內容,請指定 rsa
或 ed25519
作為 SSH 金鑰類型。
curl -X POST "$vpc_api_endpoint/v1/keys?version=2023-03-30&generation=2" -H "Authorization: Bearer $iam_token" -d '{
"name":"my-key-1",
"public_key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDDGe50Bxa5T5NDddrrtbx2Y4/VGbiCgXqnBsYToIUKoFSHTQl5IX3PasGnneKanhcLwWz5M5MoCRvhxTp66NKzIfAz7r+FX9rxgR+ZgcM253YAqOVeIpOU408simDZKriTlN8kYsXL7P34tsWuAJf4MgZtJAQxous/2byetpdCv8ddnT4X3ltOg9w+LqSCPYfNivqH00Eh7S1Ldz7I8aw5WOp5a+sQFP/RbwfpwHp+ny7DfeIOokcuI42tJkoBn7UsLTVpCSmXr2EDRlSWe/1M/iHNRBzaT3CK0+SwZWd2AEjePxSnWKNGIEUJDlUYp7hKhiQcgT5ZAnWU121oc5En",
"type":"rsa"
}'
使用 Terraform 匯入 SSH 金鑰
透過參照 ssh-key 資料來源來建立 ssh-key 資源或使用現有的 ssh-key。 如需相關資訊,請參閱 ibm_is_ssh_keys 上的 Terraform 文件
透過參照 ssh-key 資料來源來建立 ssh-key 資源或使用現有的 ssh-key。 針對 name
內容,指定 SSH 金鑰的名稱。 對於 public_key
內容,請輸入公開金鑰資訊。 對於 type
內容,請指定 rsa
或 ed25519
作為 SSH 金鑰類型。 預設值為 rsa
。 您必須指定 ed25519
,才能匯入
ed25519
SSH 金鑰。
resource "ibm_is_ssh_key" "example_sshkey" {
name = "example-sshkey"
public_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCKVmnMOlHKcZK8tpt3MP1lqOLAcqcJzhsvJcjscgVERRN7/9484SOBJ3HSKxxNG5JN8owAjy5f9yYwcUg+JaUVuytn5Pv3aeYROHGGg+5G346xaq3DAwX6Y5ykr2fvjObgncQBnuU5KHWCECO/4h8uWuwh/kfniXPVjFToc+gnkqA+3RKpAecZhFXwfalQ9mMuYGFxn+fwn8cYEApsJbsEmb0iJwPiZ5hjFC8wREuiTlhPHDgkBLOiycd20op2nXzDbHfCHInquEe/gYxEitALONxm0swBOwJZwlTDOB7C6y2dzlrtxr1L59m7pCkWI4EtTRLvleehBoj3u7jB4usR"
type = "rsa"
}
下一步
找到或產生 SSH 金鑰之後,即可規劃並建立伺服器。
虛擬伺服器
裸機伺服器
SSH 金鑰疑難排解