在「計算 > SSH 金鑰」頁面可以新建、重新命名和刪除 SSH 金鑰,供登入實例和建立實例時選用。新建金鑰有兩種模式:讓控制台自動生成一組金鑰對,或者匯入一個你已經持有的公鑰。
只有「自動生成」模式會產生私鑰,而這把私鑰只在生成的那一刻顯示一次。 關閉彈窗之後,控制台和 API 都沒有任何入口能再把它找回來——不是「藏起來了」,是徹底沒有檢視渠道了。點擊「建立」之前,先想好私鑰要存到哪裡:密碼管理器、加密的本機檔案,或者其他你信得過的地方。
- 權限:你的角色需要包含 SSH 金鑰管理權限。
- 儲存私鑰的地方:如果打算用「自動生成」模式,提前準備好密碼管理器或其他安全儲存位置——私鑰生成之後沒有回頭路。
- 一份已有公鑰(選填):如果打算匯入而不是生成,準備好 OpenSSH 格式的公鑰文字(
authorized_keys裡的單行格式)。
- 在「計算 > SSH 金鑰」頁面,點擊新建金鑰。
- 在彈窗的名稱欄位中確認或修改金鑰名稱。控制台已經填入一個預設名稱,格式類似
ssh-key-20260829-1234。 - 模式選擇器保持在自動生成(預設選中)。
- 點擊建立。控制台會當場生成一組 Ed25519 金鑰對,彈窗隨即切換為「儲存你的私鑰」頁面,並顯示警告:「私鑰僅在此展示一次,關閉後將無法再次檢視,請立即儲存。」
到這一步私鑰已經生成,只是視窗還沒關。剩下的步驟決定你還能不能再看到它。
- 點擊下載私鑰,把私鑰儲存為檔案;或者點擊公鑰、私鑰文字框旁的複製按鈕,把內容貼進密碼管理器。
- 勾選我已儲存好私鑰。這個核取方塊控制著下一步按鈕是否可以點擊。
- 點擊完成。
這個彈窗不能靠點擊遮罩或按 Esc 關閉,唯一出口是勾選確認後點擊「完成」。這不是控制台的缺陷——私鑰只有這一次展示機會,平台沒有留一個能被手滑點掉的意外出口。
「關閉後無法再次檢視」說的是你這一側,容易被理解成私鑰已經從系統裡徹底清除。實際情況要分開看:
| 會發生什麼 | 不會發生什麼 |
|---|---|
| 關閉彈窗後,控制台和 API 都沒有任何入口能再把私鑰明文取回 | 私鑰不會真的從系統裡刪除——伺服端會以加密形式保留一份副本 |
| 這份加密副本會被「網頁控制台自動登入」功能持續複用:開啟 Web SSH 面板時,控制台按公鑰指紋比對並解密這份副本,用於免密登入 | 這份副本不會經任何介面回傳給你或其他任何人——它只在伺服端內部使用,從不出現在回應裡 |
| 唯一能清除伺服端這份副本的方法是刪除這把 SSH 金鑰 | 關閉彈窗這個動作本身不會觸發伺服端做任何清理,副本是否還留著和你有沒有關掉彈窗無關 |
如果你需要的不只是「我這邊看不到了」,而是「伺服器上也不再留底」,刪除對應的 SSH 金鑰是唯一途徑,見下文。
如果本機已經有一組 SSH 金鑰,匯入公鑰不會經過私鑰展示這一步——私鑰全程留在你自己手裡,伺服端從未生成也沒有持有它。
- 在「計算 > SSH 金鑰」頁面,點擊新建金鑰。
- 在彈窗的名稱欄位中確認或修改金鑰名稱。
- 將模式選擇器切換到匯入已有公鑰。
- 在公鑰文字框中貼上 OpenSSH 格式的公鑰(
authorized_keys裡的單行格式)。 - 點擊建立。
匯入模式的建立回應裡不包含私鑰欄位,這條規則和「自動生成」模式的一次性展示是兩回事,不要混著理解。
名稱只是一個便於識別的標籤,重新命名不影響金鑰本身,也不影響已經在用這把金鑰的實例。名稱不能留空;提交空名稱時,控制台會提示:「名稱不能為空」。
- 在「計算 > SSH 金鑰」列表中,找到目標金鑰所在行,點擊刪除。
- 確認框標題為「刪除 SSH 金鑰」,正文寫明:「確定要刪除金鑰「
{{name}}」嗎?此操作不可撤銷,已使用該金鑰登入的實例不受影響,但今後無法再用它建立新實例。」 - 點擊刪除確認。
| 會發生什麼 | 不會發生什麼 |
|---|---|
| 這把金鑰從「建立實例時可選的 SSH 金鑰」列表中消失 | 已經把對應公鑰寫入 authorized_keys 的實例不會失去存取權限 |
| 如果這把金鑰是自動生成的,伺服端保存的加密私鑰副本會被一併清除 | 控制台不會提示你先檢查有哪些實例在用這把金鑰——刪除前需要自己確認 |
名稱留空,或者選擇「匯入已有公鑰」模式但公鑰欄位留空,提交都會失敗,控制台提示:「建立失敗,請檢查填寫內容」。檢查名稱和公鑰欄位後重新提交。
[!NOTE] 兩步驟驗證恢復碼的可檢視規則和本頁描述的 SSH 私鑰不一樣,不要套用同一套假設。具體規則屬於另一篇文件的範圍,記錄在 account/two-step-verification 頁,目前尚未撰寫。