本方案面向希望提升开发效率的DataWorks用户,通过SSH安全连接,将本地Visual Studio Code编辑器与云端个人开发环境打通,让开发者在享受本地工具体验的同时,无缝利用云端计算与数据能力,实现编码、调试效率的提升。
流程概览
环境准备:在本地电脑上生成 SSH 密钥。
配置环境:在DataWorks为个人开发环境配置 SSH 公钥和访问方式。
安装服务:在个人开发环境安装并启动 SSH 服务。
远程连接:通过 Visual Studio Code 连接到个人开发环境。
步骤一:生成 SSH 密钥对
在进行任何连接配置之前,您首先需要在您的本地开发机(即您希望从中发起连接的电脑)上生成 SSH 密钥对。
macOS
执行生成命令:打开“终端” (Terminal) 应用,在终端中输入
ssh-keygen并回车。ssh-keygen使用默认设置:系统会依次询问保存路径和密码。为了保证后续工具的无缝连接,请连续按三次
Enter键,接受所有默认选项。执行后,系统会在默认路径下生成两个文件:
id_rsa:私钥,请妥善保管,切勿泄露。id_rsa.pub:公钥,将用于配置到 DataWorks 环境中。
复制公钥:密钥默认保存在
/Users/<你的用户名>/.ssh/目录下。最快捷的复制方式是在终端中执行以下命令,它会自动将公钥内容复制到剪贴板:pbcopy < ~/.ssh/id_rsa.pub
Window
执行生成命令:在开始菜单中搜索并打开 PowerShell或者使用 Git Bash,在终端中输入
ssh-keygen并回车。ssh-keygen使用默认设置:系统会依次询问保存路径和密码。为了保证后续工具(如VS Code)的无缝连接,请连续按三次
Enter键,接受所有默认选项(默认路径且无密码)。执行后,系统会在默认路径下生成两个文件:
id_rsa:私钥,请妥善保管,切勿泄露。id_rsa.pub:公钥,将用于配置到 DataWorks 环境中。
复制公钥:密钥默认保存在
C:\Users\<你的用户名>\.ssh\目录下。请用记事本等文本编辑器打开公钥文件id_rsa.pub,并复制其全部内容。
Linux(不推荐)
Visual Studio Code需要图形化界面,建议使用图形化系统。
执行生成命令:打开“终端” (Terminal) 应用,在终端中输入
ssh-keygen并回车。ssh-keygen使用默认设置:系统会依次询问保存路径和密码。为了保证后续工具的无缝连接,请连续按三次
Enter键,接受所有默认选项。执行后,系统会在默认路径下生成两个文件:
id_rsa:私钥,请妥善保管,切勿泄露。id_rsa.pub:公钥,将用于配置到 DataWorks 环境中。
复制公钥:
root 用户的密钥保存在
/root/.ssh/。普通用户的密钥保存在
/home/<你的用户名>/.ssh/。在终端中执行以下命令来显示公钥内容,然后手动复制所有输出文本:
cat ~/.ssh/id_rsa.pub
步骤二:配置个人开发环境
进入DataWorks工作空间列表页,在顶部切换至目标地域,找到已创建的工作空间,单击操作列的,进入Data Studio。
进入个人开发环境。
单击顶部导航栏个人开发环境·请选择旁边的
图标,单击进入您所创建的个人开发环境。在弹出的“个人开发环境-实例配置”弹窗中,根据您的需求选择不同的配置方式。
完整配置说明,请参见创建个人开发环境实例。
场景A:通过公网访问 (灵活,但有额外费用)
适用于您在任何连通公网的网络环境下直接连接。
在配置界面中,进行如下设置:
启用SSH:打开此开关。
SSH公钥:将【步骤一】中复制的公钥内容粘贴到此处。
SSH访问方式:同时勾选VPC内登录和公网登录。
NAT网关:选择一个已有的 NAT 网关,或根据页面提示新建。
弹性公网IP:选择一个已有的 EIP,或根据页面提示新建。
重要若在网络设置中已配置专有网络,则配置该VPC的NAT网关。否则,配置资源组默认VPC的NAT网关。
单击提交变更,等待配置生效。
重要计费提醒:用于公网访问的 NAT 网关和弹性公网 IP (EIP) 是独立计费的云产品。即使您的开发环境实例处于“停止”状态,这两个网络产品仍会持续计费。 如果不再需要,请务必前往阿里云控制台手动删除,以免产生不必要的费用。
场景B:通过 VPC 内部网络访问 (安全、无额外网络费用)
适用于以下两种情况:
通过 VPN 或专线 已将本地网络与阿里云 VPC 打通。
从同一 VPC 内的另一台 ECS 上连接。
在配置界面中,进行如下设置:
启用SSH:打开此开关。
SSH公钥:将【步骤一】中复制的公钥内容粘贴到此处。
NAT网关:无需配置。
弹性公网IP:无需配置。
单击提交变更,等待配置生效。
步骤三:安装 SSH 服务
进入新版数据开发页面,进入已配置的个人开发环境。
在底部的 Terminal 中,执行以下命令:

# 更新软件列表并安装 SSH Server sudo apt-get update sudo apt-get install openssh-server -y # 启动 SSH 服务 sudo service ssh start # (可选) 检查 SSH 服务状态,看到 "active (running)" 表示成功 sudo service ssh status如果您需要在本地连接时,需把个人开发环境的环境变量传递出来,继续执行如下命令:
sed -i 's/^#\?PermitUserEnvironment.*$/PermitUserEnvironment yes/' /etc/ssh/sshd_config cat /proc/1/environ | tr '\0' '\n' > ~/.ssh/environment service ssh restart
步骤四:使用 Visual Studio Code 连接开发环境
获取连接命令
单击顶部导航栏个人开发环境·请选择旁边的
图标,单击管理开发环境。在目标实例后,查看访问配置。
配置公网:复制“公网访问方式”的命令。
仅配置VPC:复制“VPC访问方式”的命令。

安装 Visual Studio Code 插件
重要仅适用于图形系统(Window、Mac等),若使用无界面的Linux系统。可通过终端连接。
在 Visual Studio Code 的扩展商店中,搜索并安装
Remote - SSH插件。
添加并连接主机
点击 Visual Studio Code 左下角的远程连接图标
。在弹出的菜单中选择
Connect to Host...>Add New SSH Host...。将第1步中复制的完整 SSH 命令粘贴到输入框中,然后按回车键。
重要如果私钥不在默认路径上,需要指定私钥的位置。同时添加
ssh -i /your/path/rsa root@xx.xx.xx.xx -p 1024。Visual Studio Code 会提示您选择一个 SSH 配置文件进行保存,选择默认的即可。
此时右下角会弹出提示,点击
Connect。一个新的 Visual Studio Code 窗口会打开,并开始连接。连接成功后,将弹出一个新的Visual Studio Code窗口,左下角显示 SSH 连接的主机地址。
打开工作目录
连接成功后,Visual Studio Code 默认可能处于
/root目录下。您的代码文件通常位于/mnt/workspace。点击左侧资源管理器的“打开文件夹”按钮。
在弹出的路径中输入
/mnt/workspace,然后点击“确定”。现在,您可以在 Visual Studio Code 中看到并编辑您在 DataWorks 环境中在中的所有文件。

附录:本地开发和Data Studio开发差异
EMR Serverless Spark开发
使用本地Visual Studio Code开发时,相对于使用Data Studio,需要额外声明 --project {EMR Serverless Spark的集群id} --endpoint {EMR Serverless Spark的endpoint}。

Maxframe开发
使用本地Visual Studio Code开发时,相对于使用Data Studio,需要额外添加参数 --project {MaxCompute的project名称} --endpont {MaxCompute的endpoint}。
