全部产品
Search
文档中心

人工智能平台 PAI:远程连接:SSH直连方式

更新时间:Jul 08, 2026

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实例时,配置以下网络参数。

对于已创建的实例,单击变更配置修改对应参数,然后单击确定,更新配置。

参数名称

描述

专有网络交换机 ID安全组

如果您使用公共资源创建DSW实例,需配置专有网络交换机 ID安全组。您可以参考以下步骤创建,详细内容参见创建专有网络与交换机,及管理安全组注意专有网络和安全组必须与DSW实例在相同地域

重要

请确认安全组规则中,入方向已放通 TCP 22 端口,并允许客户端IP地址访问。

创建专有网络、交换机、和安全组操作步骤

  1. 单击DSW配置页面的创建专有网络。

    image配置VPC名称、IPv4网段和交换机信息,其他参数保持默认,然后单击确定创建VPC和交换机。

    image

  2. 返回DSW配置页面,专有网络配置选择刚刚创建的专有网络VPC。

  3. 单击创建安全组,参数默认即可,单击确定创建。然后返回DSW配置页面,安全组 ID配置为刚刚创建的安全组。

    image

    请确保安全组入方向允许访问22端口。

    image

启用SSH

单击打开,并将步骤二中生成的公钥文件id_rsa.pub的内容复制到SSH公钥文本框中。单击添加可填写多个客户端的公钥,最多支持10个公钥。

服务访问与端口配置

启用SSH开关打开后,会出现名称为SSH的服务。

  • 监听端口:DSW实例中服务监听的端口。默认为22。

  • 服务访问方式

    • VPC内访问:默认支持该访问方式。可从VPC内的其他终端(例如ECS)访问DSW中的服务。

    • 公网访问:选中该项可增加公网访问方式。同时需设置从公网访问实例的相关参数。

  • 公网访问端口:允许从公网访问的端口,即SSH公网访问时的-p参数。例如:1024。

从公网访问实例

当需要公网访问时需配置,选择DNAT + EIP。

  • NAT网关:若需公网访问则需配置该参数。选择为当前VPC创建的公网NAT网关

  • 弹性公网IP:若需公网访问则需配置该参数。选择为当前NAT网关创建的弹性公网IP(EIP)

您可参考以下内容创建NAT网关和弹性公网IP:

创建NAT网关及弹性公网IP操作步骤

  1. 单击创建NAT网关

    image

    在NAT网关创建页面配置参数或使用默认值,然后单击创建弹性公网IP

    image

  2. 在弹性公网IP创建页面配置参数或使用默认值,然后单击立即购买

  3. 返回NAT网关创建页面,弹性公网IP实例选择刚刚创建的实例,然后单击立即购买创建NAT网关。

此外,也可选择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实例

  1. 查看访问方式。

    在DSW页面,单击实例名称进入实例详情页面。在实例配置页签的网络配置区域中,查看公网访问方式VPC访问方式

    说明

    如果SSH配置未选择公网登录,则此处将只显示VPC访问方式,不显示公网访问方式。

  2. 连接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连接

    1. 打开VSCode,在Extensions中安装Remote - SSH插件。

      image

    2. 单击左下角image,唤出Remote-SSH弹窗,选择Connect to Host... > Add New SSH Host...

    3. 输入SSH连接命令。

      ssh root@xx.xx.xx.xx -p 1024 
      # 如果私钥不在默认路径上,需要指定私钥的位置
      ssh -i /your/path/example_rsa root@xx.xx.xx.xx -p 1024

      image

    4. 单击右下角打开,左下角显示连接成功。

      image

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

      image

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

      image

场景示例:在DSW实例上运行本地Notebook代码

前提条件

已按照本文步骤一到步骤四完成SSH直连配置,且生成SSH公钥时没有设置密码

操作步骤

  1. 在本地Terminal安装remote_ikernel工具并添加remote kernel。

    pip install remote_ikernel
    remote_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
  2. 在本地VSCode中,打开一个Notebook文件,右上角kernel切换,可在搜索框中选到Remote Python。

    image

常见问题

Q:远程连接SSH直连和ProxyClient代理两种方案区别?

SSH直连和ProxyClient代理区别

方案A:SSH 直连(推荐)

方案B:ProxyClient 代理

特点

需要配置VPC、NAT网关等网络组件。连接更快、更稳定。

无需其他网络组件。但连接速度和稳定性可能较差。

支持实例

除公共资源组中以 ecs.ebm 开头的规格外,其余所有实例类型均适用。

所有类型实例。

鉴权方式

使用SSH的公钥或私钥鉴权。

  1. 先通过ProxyClient填写阿里云AccessKey等信息鉴权。

  2. 再通过SSH的公钥或私钥鉴权。

访问途径

  • 通过公网进行访问(需配置NAT网关和EIP)。

  • 在用户VPC内通过内网访问。

通过公网访问。

配置方法

远程连接:SSH直连方式

远程连接:ProxyClient方式

工作原理

PAI 会自动在NAT 网关上创建 DNAT 规则,将公网的 SSH 请求转发到您的 DSW 实例。

所有流量通过PAI的代理服务器中转。

计费提醒

需要公网访问时,NAT网关和 EIP 会持续计费,即使DSW已停止。不再需要时请及时删除。

此配置不产生额外费用。

Q:使用SSH连接DSW时,遇到连接失败、超时或密钥被拒等问题,该如何解决?

按以下分类排查:

  • 公网连接不通

  • VPC内连接不通

    • 确认客户端与DSW实例在同一VPC下,并已开通内网DNS解析服务。

    • 若使用自定义镜像,确认已安装并启动SSH服务,详见步骤四:安装SSH Server

    • 确认安全组入方向已放通 TCP 22 端口。

  • 密钥被拒绝(Permission denied)

    • 确认已将公钥(id_rsa.pub的内容)完整添加到DSW实例的SSH配置中。

    • 确认SSH命令使用的私钥与公钥匹配,若私钥不在默认路径(~/.ssh/id_rsa),需用-i参数指定。

  • VSCode连接失败

    • 确认已安装Remote - SSH插件,且SSH命令输入完整(如ssh root@xx.xx.xx.xx -p 1024)。

    • 先在本地终端用SSH命令测试连接,确认基础连接正常后再排查VSCode配置。

    • 若报"试图写入的管道不存在"错误,尝试重启VSCode或重新安装Remote - SSH插件。

Q:是否支持使用PyCharm等本地WebIDE来远程连接到DSW实例?

支持所有基于原生SSH协议的功能。使用PyCharm时,PyCharm会在DSW实例中自动下载安装服务端,因此DSW实例需具备公网访问能力。

Q:如何查看实例公网IP?

如果已配置好公网NAT网关,可通过以下步骤查看公网IP。

查看公网IP操作步骤

  1. 在DSW实例列表页,单击实例名称进入实例配置页面。

  2. 找到网络信息的区域,单击公网访问网关,即可在弹性公网实例页面查看到IP。

    image

    image

Q:DSW实例是否支持创建多个用户并分别通过SSH登录?

DSW实例默认仅提供root用户用于SSH登录。目前DSW不支持创建多个独立用户并分别配置SSH隔离登录。可在实例内部手动创建新用户,但这并非官方支持的标准用法。

Q:在本地IDE(如VSCode、PyCharm)中连接DSW时,看不到工作目录文件怎么办?

SSH登录后默认目录可能是root用户的主目录(/root)。工作文件通常位于挂载的数据盘路径下,例如/mnt/workspace。在VSCode中,通过侧边栏的”文件” > “打开文件夹”功能,手动选择并打开正确的工作目录即可。

相关文档

  • 如果场景不适合或不想配置额外网络组件,可尝试使用ProxyClient方式远程连接。