更新时间:2026-02-06 GMT+08:00
分享

SSH远程开发

本节操作介绍在Windows环境中使用PuTTY SSH远程登录云上实例的操作步骤。

约束限制

使用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远程连接配置
  • 在训练作业实例详情页面获取开发环境访问地址(例如:dev-modelarts-cnnorth4.huaweicloud.com)和端口号。
    图1 训练作业实例详情页面
  • 准备好密钥对文件。

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

Step1 安装SSH工具

下载并安装SSH远程连接工具,以PuTTY为例,下载链接

Step2 使用puttygen将密钥对.pem文件转成.ppk文件

  1. 下载puttygen,并双击运行puttygen。
  2. 单击“Load”,上传.pem密钥(即在创建Notebook实例时创建并保存的密钥对文件)。
  3. 单击“Save private key”,保存生成的.ppk文件。.ppk文件的名字可以自定义,例如key.ppk。
    图2 将密钥对.pem文件转成.ppk文件

Step3 使用SSH工具连接云上训练作业实例

  1. 运行PuTTY。
  2. 单击“Session”,填写以下参数。
    1. Host Name (or IP address):云上开发环境训练作业实例的访问地址,即在训练作业实例详情页获取的地址。例如:dev-modelarts-cnnorth4.huaweicloud.com。
    2. Port:云上训练作业实例的端口,即在训练作业实例详情页获取的端口号。例如:32701。
    3. Connection Type:选择SSH。
    4. Saved Sessions:任务名称,在下一次使用PuTTY时就可以单击保存的任务名称,即可打开远程连接。
    图3 设置Session
  3. 选择Window > Translation,在“Remote character set:”中选择“UTF-8”
    图4 设置字符格式
  4. 选择Connection > Data, 在“Auto-login username” 中填写用户名“ma-user”
    图5 填写用户名
  5. 选择Connection > SSH > Auth,单击“Browse”,选择“.ppk文件”(由Step2密钥对.pem文件生成)。

  6. 单击“Open”。如果首次登录,PuTTY会显示安全警告对话框,询问是否接受服务器的安全证书。单击“Accept”将证书保存到本地注册表中。
    图6 询问是否接受服务器的安全证书
  7. 成功连接到云上训练作业实例。
    图7 连接到云上训练作业实例

8.(可选)分布式作业跳转其他节点容器

在分布式训练作业(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

2.直接执行 SSH 跳转 由于平台已预置免密互信,您无需输入密码,直接通过 ssh 命令即可跳转到作业内的其他节点:

# 跳转到 worker-1 节点

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

3.验证跳转结果 跳转成功后,终端提示符会显示新的主机名。您可以通过执行 hostname 命令确认:

hostname

# 输出示例:ma-job-40a6df3b-d136-452e-9b8c-530baf9b777f-worker-1.ma-job-40a6df3b-d136-452e-9b8c-530baf9b777f

注意事项

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

相关文档