更新时间:2026-07-21 GMT+08:00
分享

SSH远程开发

本节操作介绍在Windows环境中使用方式一:使用CMD工具连接云上训练作业实例方式二: 使用MobaXterm工具连接云上训练作业实例两种方式远程登录云上实例的操作步骤。

约束限制

使用SSH连接训练作业实例的约束限制如下:

  • 本地用户密钥和权限必须匹配。
  • 本地用户密钥需要存放在指定目录下。
    • Windows:C:\Users\{{user}}
    • macOS/Linux:~

      在macOS和Linux系统中,~ 表示当前用户的主目录。

  • 远端镜像中的ma-user不能被锁定。
  • 远端的/home/ma-user/.ssh或/root/.ssh目录权限建议设置为750或755。
  • 本地或远端的OpenSSH版本不能低于8.0。
  • 建议同时建立的连接数不超过10个。

如果遇到SSH连接问题,请参考本地通过SSH连接的故障排查进行解决。

前提条件

  • 已创建一个训练作业实例,并开启远程SSH开发。该实例状态必须处于“运行中”
    • 关于如何新建训练作业实例,请参见新版训练创建页面。
    • 关于如何在已有训练作业实例开启远程SSH开发,请参见修改SSH远程连接配置
  • 在训练作业实例详情页面查找SSH远程开发访问配置项获取开发环境访问地址(例如:dev-modelarts-cnnorth4.huaweicloud.com)和端口号。
    图1 训练作业实例详情页面
  • 准备好密钥对文件。

    密钥对在用户第一次创建时,自动下载,之后使用相同的密钥时不会再有下载界面(用户一定要保存好),或者每次都使用新的密钥对。

方式一:使用CMD工具连接云上训练作业实例

下文以Windows系统为例进行说明。

  1. 打开CMD。
    • 方式一:使用开始菜单
      1. 在电脑左下角,单击“开始”,或者按键盘上的Windows键。
      2. 在开始菜单中,输入CMD,单击“命令提示符”。
        图2 打开CMD
    • 方式二:使用运行对话框
      1. 在键盘按“Windows+R”键,打开“运行”对话框。
      2. 在“运行”对话框中输入CMD,按Enter键或单击“确定”。
  2. 在CMD中,进入密钥所在目录并执行以下命令,连接Notebook实例。
    ssh -o StrictHostKeyChecking=no -i {密钥文件名} {启动用户}@{域名} -p {端口}

    命令中的{密钥文件名}、{启动用户}、{域名}、{端口}请替换为您实际的信息,从前提条件获取。

    例如,密钥文件名为KeyPair-1234-test.pem,SSH远程开发的访问地址为ssh://ma-user@authoring-ssh-modelarts-*****.huawei.com:31092,其中ma-user为启动用户,authoring-ssh-modelarts-*****.huawei.com为域名,31092为端口。命令示例如下:

    ssh -o StrictHostKeyChecking=no -i KeyPair-1234-test.pem ma-user@authoring-ssh-modelarts-*****.huawei.com -p 31092

    如下图所示,出现交互界面,表示连接成功。

    图3 使用CMD连接训练实例

方式二: 使用MobaXterm工具连接云上训练作业实例

  1. 下载并安装SSH远程连接工具,以MobaXterm为例,下载并安装MobaXterm
  2. 打开MobaXterm,在左上角单击“Session”,在“Session settings”对话框的SSH页签,配置Remote host、Username、Port和Use private key,单击“OK”
    图4 配置Session

    SSH远程开发的访问地址、密钥文件的路径从前提条件获取。例如,SSH远程开发的访问地址为ssh://ma-user@authoring-ssh-modelarts-*****.huawei.com:31092,配置示例如下。

    表1 配置说明

    配置项

    说明

    示例值

    Basic SSH settings

    Remote host

    远程主机的地址,从SSH远程开发的访问地址中获取。

    authoring-ssh-modelarts-*****.huawei.com

    Username

    用于连接远程主机的用户名,从SSH远程开发的访问地址中获取。

    ma-user

    Port

    用于连接远程主机的端口号,从SSH远程开发的访问地址中获取。

    31092

    Advanced SSH settings

    Use private key

    密钥文件的路径。从前提条件获取。

    C:\Users\***\KeyPair-1234-test.pem

    如下图所示,出现交互界面,表示连接成功。

    图5 使用MobaXterm连接训练实例
  1. (可选)分布式作业跳转其他节点容器

在分布式训练作业(Volcano Job)场景下,一个作业通常包含多个Task(如worker-0、worker-1等)。平台已自动为您配置了实例间的SSH免密登录,您可以在已登录的节点中直接跳转到其他节点,方便进行多节点集群调试。

操作步骤

  1. 获取目标节点主机名在当前已登录的容器终端中,通过平台自动注入的环境变量查看所有节点的主机名:
    env | grep VC_%s_HOSTS

    例如:

    env | grep VC_WORKER_HOSTS

    说明:Volcano会根据Task名称注入变量,例如:

    VC_WORKER_HOSTS=ma-job-40a6df3b-d136-452e-9b8c-530baf9b777f-worker-0.ma-job-40a6df3b-d136-452e-9b8c-530baf9b777f,ma-job-40a6df3b-d136-452e-9b8c-530baf9b777f-worker-1.ma-job-40a6df3b-d136-452e-9b8c-530baf9b777f

    如果节点数超过阈值(默认500节点),只能注入worker-0。如下例:

    VC_WORKER_HOSTS=ma-job-40a6df3b-d136-452e-9b8c-530baf9b777f-worker-0.ma-job-40a6df3b-d136-452e-9b8c-530baf9b777f
  2. 直接执行SSH跳转由于平台已预置免密互信,您无需输入密码,直接通过ssh命令即可跳转到作业内的其他worker节点。

    说明:worker节点间跳转ssh端口是2222,假如要跳转到worker-1节点,需要在ssh命令增加2222端口。

    # 跳转到worker-1节点

    ssh ma-job-40a6df3b-d136-452e-9b8c-530baf9b777f-worker-1.ma-job-40a6df3b-d136-452e-9b8c-530baf9b777f -p 2222
  1. 验证跳转结果跳转成功后,终端提示符会显示新的主机名。您可以通过执行hostname命令确认:
    hostname

    # 输出示例:

    ma-job-40a6df3b-d136-452e-9b8c-530baf9b777f-worker-1.ma-job-40a6df3b-d136-452e-9b8c-530baf9b777f

注意事项

  • 用户名一致性:跳转时默认使用当前登录的ma-user用户。
  • 环境变量生效范围:跳转后的新节点同样拥有平台注入的环境变量(如VC_WORKER_HOSTS),方便您在各节点间自由穿梭。
  • 自动互信范围:免密登录仅限于同一训练作业(Job)内的各节点容器之间。

相关文档