Skip to content

SSH 远程连接

AICoder 是智算云平台上的一个云端辅助开发环境,提供免费的 CPU 实例,专为管理和辅助 AI 工作负载而设计。通过 SSH,您可以从本地计算机安全地访问 AICoder,执行命令、管理文件等。本文将指导您完成 SSH 远程连接的配置和使用过程。

前置条件

  • 在开始之前,请确保您已成功申请 AICoder。只要成功打开 AICoder Shell,即表示已成功申请 AICoder。如果尚未完成此步骤,请参考使用 AICoder Shell
  • 本文假设用户已了解如何生成与添加 SSH 公钥,以及基于公私钥验证的 SSH 远程登录方式。如需帮助,建议参考阮一峰的 SSH 教程

准备 SSH 客户端

SSH 客户端是一个用于通过安全通道连接远程服务器的工具。请确保您的本地计算机已安装 SSH 客户端,并可使用 ssh 命令。

  • Mac 用户:可使用自带终端(Terminal)。
  • Windows 用户:可在 CMD 或 PowerShell 中使用 Windows 自带的 OpenSSH 客户端。如无法使用,可下载安装 Git for Windows,通过 Git Bash 使用 SSH。
  • 其他工具:如 VS Code 等支持 SSH 客户端的工具。

终端录制

检查本地 SSH 客户端

在演示库中打开

适用于开始配置 AICoder、开发机或极值算力实例 SSH 连接前的准备检查。

配置并连接 AICoder

AICoder 仅支持 SSH 密钥对认证,您需要向智算云平台提供您的 SSH 公钥。SSH 密钥认证使用公私钥对进行身份验证,确保连接安全可靠。

信息

AICoder 禁用了 SSH 基于密码的认证,仅支持基于 SSH 公私钥对的身份验证。

Step 1 添加 SSH 公钥

您需要将 SSH 公钥添加到 AICoder,以便通过密钥认证登录。推荐使用智算云平台的 SSH 公钥管理功能:

  1. 访问智算云平台的 SSH 公钥管理页面。添加您的 SSH 公钥。

  2. 如果已经在网页端打开过 AICoder Shell,由于实例会持续运行,所以您添加的 SSH 公钥不会立即在 AICoder 中生效。请在网页端打开 AICoder Shell,在 Shell 窗口左上角找到一键重启图标并点击,重启完成后自动注入平台已有的 SSH 公钥。重新启动时,平台会自动将公钥注入到 ~/.ssh/authorized_keys 文件中。

Step 2 获取 AICoder SSH 连接命令

AICoder 支持 SSH 远程登录,但不支持 SSH 直接连接,需要使用 SSH 跳转功能,该连接首先路由到智算云平台的跳板机,再连接到 AICoder 实例。请使用下方任一方式获取 SSH 连接命令。

一键复制

在网页端打开 AICoder Shell,在 Shell 窗口右上角找到钥匙图标,点击展示 SSH 和文件传输命令。

直接复制弹窗中的 SSH 连接命令。在本地终端中粘贴并执行该命令,即可通过 SSH 连接到 AICoder。

信息

  • 该操作可能要求用户已完成实名认证。请按照提示完成认证。
  • 首次打开后,SSH 地址仅以密文展示。阅读并同意补充协议后,弹窗中将展示展示当前 AICoder 实例的真实地址。

终端录制

通过 ssh -J 连接 AICoder

在演示库中打开

适用于需要从本地终端直接进入 AICoder Shell 的场景。

自行拼接

您也可以自行拼接 AICoder 的 SSH 远程连接命令。

SSH 命令格式解析:

language-bash
ssh -J <ssh-jumper> root@<aicoder_id>
  • -J <ssh-jumper> 用于启用 SSH 跳转功能,该连接首先路由到智算云平台的跳板机,再由跳板机转发到您的 AICoder 实例。跳板机具体地址与网页弹窗中具体展示的值一致: ssh-jumper.neogpu.com。

  • root 为默认 SSH 登录用户名(部分旧版实例展示为非 root 普通用户名,请重启)。

  • <aicoder_id> 为待连接的目标 AICoder ID。您需要在网页端打开 AICoder Shell,在看到类似下方的命令行提示后,获取 aic- 前缀的字符串,移除后缀 -aicoder-0 即为 AICoder ID。 如下方示例,某用户登录的 AICoder 主机为 aic-da3sf44m5p44xkga-aicoder-0,其中 aic-da3sf44m5p44xkga 即为 AICoder ID。

    language-shell
    root@aic-da3sf44m5p44xkga-aicoder-0:~#

使用以上格式,可拼接出一个完整的 SSH 命令(示例):

language-shell
ssh -J ssh-jumper.neogpu.com root@aic-da3sf44m5p44xkga

终端录制

从 AICoder 提示符拼接 SSH 命令

在演示库中打开

适用于控制台没有直接给出连接命令,或需要理解实例 ID 与 SSH 命令关系的场景。

Step 3 使用 SSH 客户端进行连接

请确保您的本地计算机已安装 SSH 客户端,并可使用 ssh 命令。

系统自带终端

  • Linux/Mac 用户:可使用自带终端(Terminal)。
  • Windows 用户:可在 CMD 或 PowerShell 中使用 Windows 自带的 OpenSSH 客户端

    信息

    如果无法安装 Windows 自带的 OpenSSH 客户端,可下载安装 Git for Windows,通过 Git Bash 使用 SSH。

第三方工具

简化 SSH 连接

为了方便快速访问 AICoder,您可以设置别名(bash/zsh alias)或修改 SSH 配置文件。以下仅介绍编辑 SSH 配置文件的方式。配置完成后,连接 AICoder 的 SSH 命令可简化为 ssh aicoder

打开本地 .ssh/config,添加如下记录:

language-text
Host aicoder
  HostName aic-c8lkg5b88mieqw6b
  User root
  IdentitiesOnly Yes
  ProxyJump ssh-jumper.neogpu.com
  • Host:自定义远程主机名,例如 aicoder
  • HostName:必须填写 AICoder ID。
  • User:SSH 远程登录用户,填写 AICoder 默认用户 root
  • IdentitiesOnly:填写 Yes。
  • ProxyJump:表示使用了 SSH 跳转功能,该连接首先路由到跳板机,再由平台转发到您的 AICoder 实例。注意,跳板机具体地址必须以您的网页弹窗中具体展示的值为准

警告

如果使用非默认私钥文件,请确保私钥权限正确(chmod 600),并在配置中指定 IdentityFile。详见使用自定义私钥

终端录制

用 SSH Config 简化 AICoder 连接

在演示库中打开

适用于频繁连接同一 AICoder 实例,减少重复输入长连接命令。

扩展功能

文件传输:通过 sftpscp 安全传输文件。请参考文件传输指南

用户账户说明

AICoder Shell 默认使用 root 帐号登录。部分旧版实例可能使用非 root 用户,建议重启实例以更新。

信息

如需切换到 shell 用户,可使用以下命令:

  • sudo runuser -u shell /bin/bash
  • sudo su - shell -s /bin/bash

常见问题

无法与 AICoder 建立 SSH 连接

如果无法与 AICoder 建立 SSH 连接,请按照以下步骤排查:

  1. 检查 SSH 私钥文件

    • MacOS/Linux 私钥文件默认路径为: ~/.ssh/
    • Windows: C:\Users\<用户名>\.ssh\

    确认本地私钥文件路径正确(常见为 ~/.ssh/id_rsa/id_ed25519 等)。SSH 客户端一般在默认路径下按顺序寻找以下私钥文件。如果使用非默认私钥文件名,例如 id_rsa-mykey,导致 SSH 客户端无法找到私钥,可以重新生成 SSH 密钥对,并使用默认私钥文件名。如果必须使用非默认私钥文件名,请在 SSH 连接命令中使用 -i 选项手动指定私钥。也可修改本地 SSH 配置文件,指向正确的私钥文件。

  2. 检查 AICoder 内 SSH 公钥文件,确保包含您的公钥。

    language-bash
    cat ~/.ssh/authorized_keys
  3. 测试网络连接。由于 AICoder 需要通过平台提供的跳板机访问,因此需要测试您的设备与平台跳板机之间的连接。例如,使用 nc 命令测试与跳板机的连接:

    language-bash
    nc -vz ssh-jumper.neogpu.com 22

    注意,跳板机具体地址必须以您的网页弹窗中具体展示的值为准

    • 成功:显示 Connection to ssh-jumper.neogpu.com port 22 [tcp/*] succeeded!
    • 失败:网络问题或防火墙限制。请联系您的网络管理员,检查网络设置。
  4. 如仍无法解决,请执行以下命令获取详细输出,并联系技术支持:

    language-bash
    ssh -vv -J ssh-jumper.neogpu.com root@aic-c8lkg5b88mieqw6b

    注意,跳板机具体地址必须以您的网页弹窗中具体展示的值为准

终端录制

使用 -vv 排查 AICoder SSH 连接

在演示库中打开

适用于排查无法连接 AICoder、跳板机不可达、密钥未被使用等问题。

在 SSH Config 文件中使用自定义私钥

如果使用了非默认的 SSH 私钥文件路径,请务必确保私钥文件权限符合要求(可对私钥文件执行 chmod 600),并在本地的 .ssh/config 文件配置中使用 IdentityFile 指定自定义私钥文件路径。

以下仅提供一个样本配置:

language-text
Host aicoder
HostName aic-c8lkg5b88mieqw6b
User root
IdentitiesOnly Yes
IdentityFile ~/.ssh/custom_private_key
ProxyJump ssh-jumper.neogpu.com

终端录制

为 AICoder 指定自定义私钥

在演示库中打开

适用于本地存在多把 SSH 私钥,或 AICoder 使用非默认私钥文件的场景。

是否支持在手动在 AICoder 中添加公钥

如暂不便重启,也可以手动在 AICoder 中添加公钥,修改后立即生效。AICoder 下次重启时,平台将自动写入最新的 SSH 公钥,并自动移除手动添加的公钥中重复的公钥。请参考添加 SSH 公钥指南

终端录制

在 AICoder 中检查 authorized_keys

在演示库中打开

适用于需要手动确认或补充 AICoder 内部授权公钥的排障场景。

AICoder 的 SSH 连接命令中的 -J 选项是什么?什么是跳板机?

-J 选项(对应配置文件中的 ProxyJump)用于指定跳板机(Jump Host)。

由于 AICoder 实例运行在云端私有网络中,无法从公网直接访问,因此需要通过一个具有公网 IP 的中间服务器进行转发,这个中间服务器就是跳板机

当您执行 ssh -J <ssh-jumper> root@<aicoder_id> 时:

  1. 本地 SSH 客户端首先建立与跳板机 <ssh-jumper> 的安全连接。
  2. 然后通过跳板机建立通往目标 AICoder 实例 <aicoder_id> 的安全通道。

这种方式既保证了 AICoder 实例的网络隔离安全,又提供了便捷的访问方式。

信息

-J 跳转机制仅适用于 AICoder 实例访问。对于其他计算实例,请直接使用平台提供的 SSH 主机 IP 或域名进行连接,无需配置跳板机。