上传、验证和删除 SSH 公钥
平台级 SSH 公钥会在支持的实例重启时注入。上传、验证或删除公钥时,都要把“下次重启后生效”作为判断边界。
确认 SSH 公钥会注入哪些服务
当前 SSH 公钥会注入以下服务。
注入 AIStudio 开发机
新增 SSH 公钥后,需要新建或重启开发机才会生效。
注入 AICoder
新增 SSH 公钥后,需要打开 Shell 窗口并手动点击左上角的「一键重启」图标重启容器才会生效。仅关闭 Shell 窗口不会触发公钥注入。
注入极值算力实例
新增 SSH 公钥后,需要新建、重启或改配实例才会生效。
需要特别说明的是,SSH 公钥的注入是全局且无差别的。一旦上传,该公钥将被自动注入到您账号下所有支持平台级 SSH 公钥的实例中。平台不支持针对特定服务或特定单个实例进行选择性注入。
生成 SSH 公钥
智算云平台不负责生成 SSH 密钥对。您需要在本地自行生成。Linux/macOS 用户以及 Windows 10/11 用户通常可以使用终端中的 ssh-keygen 命令生成;Windows 用户也可以使用 PuTTYgen 等第三方工具生成。
信息
基于 SSH 公私钥对的验证允许用户通过一对加密密钥实现无密码登录,提升了远程服务器管理的安全性和便捷性。关于 SSH 原理的深入介绍,建议参考阮一峰的 SSH 教程。
上传 SSH 公钥并等待实例重启
上传 SSH 公钥后,重启相关实例,平台才会把新增公钥注入到实例中。
信息
- 新增的 SSH 公钥将在下一次相关实例重启时生效。
重启实例后验证公钥注入结果
如果您是第一次配置 SSH 公钥,可能会觉得这个过程有些抽象。为了让您更直观地确认配置已生效,我们可以登录到实例中,亲眼看到平台为您注入的公钥。这不仅能验证配置成功,也能帮助您理解平台是如何管理这些密钥的。
以下步骤适用于支持平台级 SSH 公钥注入的实例。
新建或重启一台支持平台级 SSH 公钥注入的实例。
检查
~/.ssh/authorized_keys文件来验证公钥是否已成功注入。language-shellcat ~/.ssh/authorized_keys平台注入的公钥会被包含在
#### PLATFORM-MANAGED KEYS BEGIN ####和#### PLATFORM-MANAGED KEYS END ####标记之间。language-shellroot@aic-c7wrplj4qfj54bs4-aicoder-0:~# cat .ssh/authorized_keys #### PLATFORM-MANAGED KEYS BEGIN #### #### 如手动添加公钥,请勿写入此区域内 #### ssh-ed25519 AAAAC3NzaC1lZDI1NTE5BBBBIJdlUKh/Wy2SlZ3tpNxqd9dN0t+gU/VyaOoGuVRcS9eD janedoe@infini-ai.com #### PLATFORM-MANAGED KEYS END #### # 以下是手动添加的 SSH 公钥 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJdlUKh/Ax3YlZ3tpNeqd9dN0t+gU/VyaOoGuVRcS9eD janedoe@infini-ai.com root@aic-c7wrplj4qfj54bs4-aicoder-0:~#
删除 SSH 公钥并重启实例
删除操作会从 SSH 公钥管理中移除该 SSH 公钥,但是无法影响运行中的相关实例。从 SSH 公钥管理页面删除的 SSH 公钥将在下一次实例重启时移除。
常见问题
以下问题用于解释平台托管公钥和实例内手动公钥的关系。修改实例内 authorized_keys 文件时,请避开平台托管区域。
我还能手动添加、管理 SSH 公钥吗?
可以。
虽然平台提供了自动化的 SSH 公钥注入功能,但您仍然保留对实例内 ~/.ssh/authorized_keys 文件的完全控制权。
- 手动添加:您可以像在普通 Linux 服务器上一样,手动将公钥追加到
~/.ssh/authorized_keys文件中。需要注意的是,手动添加的公钥仅对当前实例生效,不会像平台托管密钥那样自动同步到您账号下的所有实例。 - 共存机制:平台注入的公钥位于
#### PLATFORM-MANAGED KEYS BEGIN ####和#### PLATFORM-MANAGED KEYS END ####标记之间。 - 注意事项:为了避免冲突,请不要修改或删除平台标记区域内的内容。该区域的内容会在实例重启时被平台重置。请将您手动管理的公钥放在这些标记之外(例如文件的末尾)。
root@aic-c7wrplj4qfj54bs4-aicoder-0:~# cat .ssh/authorized_keys
#### PLATFORM-MANAGED KEYS BEGIN ####
#### 如手动添加公钥,请勿写入此区域内 ####
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5BBBBIJdlUKh/Wy2SlZ3tpNxqd9dN0t+gU/VyaOoGuVRcS9eD janedoe@infini-ai.com
#### PLATFORM-MANAGED KEYS END ####
# 以下是手动添加的 SSH 公钥
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJdlUKh/Ax3YlZ3tpNeqd9dN0t+gU/VyaOoGuVRcS9eD janedoe@infini-ai.com
root@aic-c7wrplj4qfj54bs4-aicoder-0:~#删除 SSH 公钥后,为什么旧实例仍然可以登录?
删除 SSH 公钥只会影响后续注入结果。已经运行的实例中仍保留此前注入的公钥,需要重启后才会移除;如果实例内还存在用户手动添加的公钥,平台删除操作不会同步清理。
为什么关闭 AICoder Shell 后 SSH 公钥仍未注入或生效?
关闭 AICoder Shell 页面并不会将 AICoder 实例关机。您需要手动点击 AICoder Shell 窗口左上角的「一键重启」图标,手动重启 AICoder 实例,使平台注入的 SSH 公钥生效。