在“计算 > 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 页,目前尚未撰写。