SSH直连是从本地终端或VSCode远程连接DSW实例的推荐方式,连接稳定且快速。
使用限制
-
不支持的实例类型:
公共资源组以
ecs.ebm开头的资源规格,暂不支持 SSH 远程连接。 -
公网连接数量限制:
当您通过公网远程连接DSW实例时,PAI会自动为每个公网NAT网关配置DNAT规则。您无需手动配置。
每个公网NAT网关最多可配置100条DNAT规则,因此最多支持100个DSW实例的同时连接。更多配额信息,请参见配额。
计费说明
当需要从公网远程连接DSW实例时,需配置NAT网关、弹性公网IP(EIP)或负载均衡NLB。NAT网关、EIP、NLB为独立计费的云产品,会持续计费,即使DSW已停止。因此,如果不再需要,请务必及时删除。
实施步骤
步骤一:开通内网DNS解析
开通内网DNS解析。DSW实例部署在VPC中,SSH连接依赖内网域名解析实例IP地址。开通内网DNS解析后,连接才能成功建立。
步骤二:生成SSH公钥
在客户端执行以下命令生成公钥。生成过程中需设置登录DSW实例的密码,如果要使用remote_ikernel工具连接实例(见本文场景示例),请不要设置密码,直接按回车键(Enter)。
-
(推荐)将公钥生成到默认路径下:
ssh-keygen执行后,在以下目录生成公钥(
id_rsa.pub)和私钥(id_rsa)文件。如果已存在SSH密钥对,文件将被覆盖。各系统默认路径:-
Windows操作系统:保存在
C:\Users\<username>\.ssh目录或C:\用户\<username>\.ssh目录。 -
Linux操作系统:root用户保存在
/root/.ssh目录;普通用户保存在/home/<username>/.ssh目录。 -
Mac操作系统:保存在
/Users/<username>/.ssh目录。
-
-
将公钥生成到自定义目录下:
ssh-keygen -f /your/path/example_rsa # 将在/your/path下生成example_rsa.pub和example_rsa
步骤三:配置DSW实例SSH参数
在创建DSW实例时,配置以下网络参数。
对于已创建的实例,单击变更配置修改对应参数,然后单击确定,更新配置。
配置专有网络、交换机和安全组
如果您使用公共资源创建DSW实例,需要配置专有网络、交换机 ID和安全组。您可以参考如下操作步骤创建,更详细的内容请参见创建专有网络与交换机,及管理安全组。注意专有网络和安全组必须与DSW实例在相同地域。
请确认您在配置的安全组规则中,入方向已放通 TCP 22 端口,并且已允许您的客户端 IP 地址访问。
配置SSH相关参数
-
启用SSH:单击打开。
-
SSH公钥:将步骤二中生成的公钥文件
id_rsa.pub的内容复制到该文本框中。如果您需要同时支持VPC内登录和公网登录方式,需同时添加多个客户端的公钥。请按照回车换行的方式逐个添加,最多支持添加10个公钥。
-
服务访问与端口配置:在启用SSH开关打开后,会出现名称为SSH的服务。
-
监听端口:DSW实例中运行的服务监听的端口。默认为22。
-
服务访问方式:
-
VPC内访问:默认支持该访问方式。您可以从VPC内的其他终端(例如ECS),访问DSW中的服务。
-
公网访问:选中该项,可以增加公网访问方式。同时需要设置从公网访问实例的相关参数。
-
-
公网访问端口:允许从公网访问的端口,即SSH公网访问时的
-p参数。例如:1024。
-
-
从公网访问实例:当需要公网访问方式时需要配置,选择DNAT + EIP。
-
NAT网关:若需要公网访问则需要配置该参数。选择为当前VPC创建的公网NAT网关;
-
弹性公网IP:若需要公网访问则需要配置该参数。选择为当前NAT网关创建的弹性公网IP(EIP);
您可参考如下内容创建NAT网关和弹性公网IP:
此外,您也可以选择NLB方式,创建NLB时实例网络类型选择公网类型,VPC选择与当前DSW实例相同的VPC,详细操作请参见NLB快速实现IPv4服务的负载均衡。
说明如果多台DSW实例共用相同的DNAT和EIP(或NLB),请使用不同的公网访问端口。
-
步骤四:安装SSH Server
在DSW实例的Terminal中执行以下命令,查看SSH服务是否已运行。
官方预置镜像及基于其生成的自定义镜像,默认已安装并启动SSH Server。
service ssh status
如果SSH服务未运行,在DSW的Terminal中执行以下命令安装SSH Server。
sudo apt-get update
sudo apt-get install openssh-server
sudo service ssh start
如果提示sudo未找到,先执行apt-get install sudo,再重试上述命令。
步骤五:远程连接DSW实例
-
查看访问方式。
在DSW页面,单击实例名称进入实例详情页面。在实例配置页签的网络配置区域中,查看公网访问方式和VPC访问方式。
说明如果SSH配置未选择公网登录,则此处将只显示VPC访问方式,不显示公网访问方式。
-
连接DSW实例。
通过SSH连接
-
公网访问
在本地命令行或其他终端中,使用步骤1查询的公网访问方式远程连接到DSW实例。
ssh root@xx.xx.xx.xx -p 1024 # 如果私钥不在默认路径上,需要指定私钥的位置 ssh -i /your/path/example_rsa root@xx.xx.xx.xx -p 1024重要-p参数的值1024为SSH配置的公网访问端口。 -
VPC访问
在VPC内的其他终端(例如ECS实例),使用步骤1查询的VPC访问方式远程连接到DSW实例。
ssh root@dsw-notebook-xxxx.dsw-xxxx.dsw.pai.alibaba.com -p 22 # 如果私钥不在默认路径上,需要指定私钥的位置 ssh -i /your/path/example_rsa root@dsw-notebook-xxxx.dsw-xxxx.dsw.pai.alibaba.com -p 22
通过本地VSCode连接
-
打开VSCode,在Extensions中安装Remote - SSH插件。

-
单击左下角
,唤出Remote-SSH弹窗,选择Connect to Host... > Add New SSH Host...。 -
输入SSH连接命令。
ssh root@xx.xx.xx.xx -p 1024 # 如果私钥不在默认路径上,需要指定私钥的位置 ssh -i /your/path/example_rsa root@xx.xx.xx.xx -p 1024
-
单击右下角打开,左下角显示连接成功。

-
打开DSW实例中的目录,开始远程开发和调试。

-
运行时可连接DSW实例中的Kernel。

-
场景示例:在DSW实例上运行本地Notebook代码
前提条件
已按照本文步骤一到步骤四完成SSH直连配置,且生成SSH公钥时没有设置密码。
操作步骤
-
在本地Terminal安装remote_ikernel工具并添加remote kernel。
pip install remote_ikernelremote_ikernel manage --add \ --kernel_cmd="ipython kernel -f {connection_file}" \ # 无需修改 --name="Remote Python" \ --interface=ssh \ --host=root@*.*.*.*:1024 # 此处修改为您的host地址,如果私钥不在默认路径上,则需要设置为 --host="-i /your/path/example_rsa root@*.*.*.*:1024"如果回显提示如下,表示remote kernel添加成功。
Added kernel ['rik_ssh_root_121_40_*_*_1024_remotepython']: SSH root@121.40.*.*:1024 Remote Python.查看remote kernel配置信息可执行如下命令。
remote_ikernel manage --show -
在本地VSCode中,打开一个Notebook文件,右上角kernel切换,可在搜索框中选到Remote Python。

常见问题
Q:远程连接SSH直连和ProxyClient代理两种方案区别?
|
方案A:SSH 直连(推荐) |
方案B:ProxyClient 代理 |
|
|
特点 |
需要配置VPC、NAT网关等网络组件。连接更快、更稳定。 |
无需其他网络组件。但连接速度和稳定性可能较差。 |
|
支持实例 |
|
所有类型实例。 |
|
鉴权方式 |
使用SSH的公钥或私钥进行鉴权。 |
|
|
访问途径 |
|
通过公网进行访问。 |
|
配置方法 |
||
|
工作原理 |
PAI 会自动在NAT 网关上创建 DNAT 规则,将公网的 SSH 请求转发到您的 DSW 实例。 |
所有流量通过 PAI 的代理服务器进行中转。 |
|
计费提醒 |
需要公网访问时,NAT 网关和 EIP 会持续计费,即使DSW已停止。如果不再需要,请及时删除。 |
此配置不产生额外费用。 |
Q:是否支持使用PyCharm等本地WebIDE来远程连接到DSW实例?
支持所有基于原生SSH协议的功能。使用PyCharm时,PyCharm会在DSW实例中自动下载并安装服务端,因此DSW实例需要具备公网访问能力。
Q:使用SSH连接DSW时,遇到连接失败、超时或密钥被拒等问题,该如何解决?
连接失败通常由网络配置、认证或权限问题导致,按以下步骤排查:
-
公网地址访问不通,如何解决?
-
请确认您在创建实例时配置的安全组规则中,入方向已放通 TCP 22 端口,并且已允许您的客户端 IP 地址访问。
-
请确认在您选择的VPC中是否创建了多个公网NAT网关:
-
如果创建了多个公网NAT网关,请参考单可用区公网 NAT 网关高可用部署,检查您的NAT网关、vSwitch和路由表之间的关系是否正确。您在DSW中选择的vSwitch能够在路由表中正确路由到您选择的NAT网关,这样才能使您的SSH请求的返回结果返回到您的客户端。
-
如果您只有一个公网NAT网关,请使用自助问题排查中的网络连通性问题进行排查。输入您本机的公网IP、您的公网EIP以及DSW实例分配给您的端口(即在DSW实例详情页查询的公网访问方式中配置的端口),分析网络可达性。
-
-
-
VPC地址访问不通,如何解决?
-
请确认您是否使用了自定义镜像,您的自定义镜像里是否安装并开启了SSH服务。详情请参见步骤四:安装SSH Server。
-
请确认您创建实例的安全组规则内,入方向是否允许TCP 22端口的访问。
-
如果上述方法无法解决您的问题,请联系您的商务经理进行进一步排查。
-
-
连接超时或无法访问:
-
SSH直连 (公网):请检查为DSW实例配置的公网NAT网关和安全组规则,确保已对公网放行了正确的端口 。
-
SSH直连 (VPC内):如果您从VPC内的ECS连接DSW,请检查两者是否在同一VPC下,并尝试为VPC开通私网DNS解析服务。
-
-
密钥被拒绝 (Permission denied / Server refused our key):
-
请确保已在本地通过
ssh-keygen生成密钥对,并将公钥(id_rsa.pub文件的内容)完整、正确地添加到了DSW实例的SSH配置中 。 -
在执行SSH命令时,请确认您使用的私钥与添加到DSW的公钥匹配。若私钥文件不在默认路径(
~/.ssh/id_rsa),需要使用-i参数显式指定其路径 。
-
-
VSCode连接失败:
-
确保已安装
Remote - SSH插件 。 -
添加新主机时,输入的SSH命令要完整,例如
ssh root@xx.xx.xx.xx -p 1024。 -
连接失败后,可先尝试在本地终端直接使用SSH命令连接,根据终端的报错信息进一步定位问题。
-
Q:如何查看实例公网IP?
如果您已配置好公网NAT网关,可以通过以下步骤查看公网IP。
Q:DSW实例是否支持创建多个用户并分别通过SSH登录?
DSW实例默认仅提供root用户用于SSH登录 。目前,DSW原生不支持创建多个独立用户并为他们分别配置SSH隔离登录的功能。您可以尝试在实例内部手动创建新用户,但这并非官方支持的标准用法。
Q:在本地IDE(如VSCode、PyCharm)中连接DSW时,看不到工作目录文件怎么办?
SSH登录后默认的目录可能是root用户的主目录(/root)。您的工作文件通常位于挂载的数据盘路径下,例如 /mnt/workspace。在VSCode中,您可以通过侧边栏的“文件” > “打开文件夹”功能,手动选择并打开服务器上的正确工作目录,即可在文件浏览器中看到您的项目文件。
相关文档
-
如果您的场景不适合或不想配置额外网络组件,可以尝试使用ProxyClient方式进行远程连接。
配置VPC名称、IPv4网段和交换机信息,其他参数保持默认,然后单击确定创建VPC和交换机。












