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文件
- 下载puttygen,并双击运行puttygen。
- 单击“Load”,上传.pem密钥(即在创建Notebook实例时创建并保存的密钥对文件)。
- 单击“Save private key”,保存生成的.ppk文件。.ppk文件的名字可以自定义,例如key.ppk。
图2 将密钥对.pem文件转成.ppk文件
Step3 使用SSH工具连接云上训练作业实例
- 运行PuTTY。
- 单击“Session”,填写以下参数。
- Host Name (or IP address):云上开发环境训练作业实例的访问地址,即在训练作业实例详情页获取的地址。例如:dev-modelarts-cnnorth4.huaweicloud.com。
- Port:云上训练作业实例的端口,即在训练作业实例详情页获取的端口号。例如:32701。
- Connection Type:选择SSH。
- Saved Sessions:任务名称,在下一次使用PuTTY时就可以单击保存的任务名称,即可打开远程连接。
图3 设置Session
- 选择,在“Remote character set:”中选择“UTF-8”。
图4 设置字符格式
- 选择, 在“Auto-login username” 中填写用户名“ma-user”。
图5 填写用户名
- 选择,单击“Browse”,选择“.ppk文件”(由Step2密钥对.pem文件生成)。

- 单击“Open”。如果首次登录,PuTTY会显示安全警告对话框,询问是否接受服务器的安全证书。单击“Accept”将证书保存到本地注册表中。
图6 询问是否接受服务器的安全证书
- 成功连接到云上训练作业实例。
图7 连接到云上训练作业实例
8.(可选)分布式作业跳转其他节点容器
在分布式训练作业(Volcano Job)场景下,一个作业通常包含多个 Task(如 worker-0、worker-1 等)。平台已自动为您配置了实例间的 SSH 免密登录,您可以在已登录的节点中直接跳转到其他节点,方便进行多节点集群调试。
操作步骤
- 获取目标节点主机名 在当前已登录的容器终端中,通过平台自动注入的环境变量查看所有节点的主机名:
例如:
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)内的各节点容器之间。