上传、验证和删除 SSH 公钥
平台级 SSH 公钥会在支持的实例重启时注入。上传、验证或删除公钥时,都要把“下次重启后生效”作为判断边界。
确认 SSH 公钥会注入哪些服务
当前 SSH 公钥会注入以下服务。
注入 AIStudio 开发机
新增 SSH 公钥后,需要新建或重启开发机才会生效。
注入 AICoder
重要
新增 SSH 公钥后,需要打开 AICoder 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 公钥生效。