文档

直连方式

更新时间:

为了解决使用ProxyClient客户端代理工具远程连接DSW实例时可能出现的影响使用体验的问题,例如频繁需要重连、速度低等,DSW提供了直连方式,旨在提供更稳定、更快速的连接体验。

使用限制

  • 仅以下类型的DSW实例支持使用直连方式:

    • 使用灵骏智算资源创建的DSW实例。

    • 使用公共资源组创建的后付费DSW实例。

  • 由于VPC的公网NAT网关的限制,当使用公网登录方式远程连接DSW实例时,PAI会为您的每个公网NAT网关配置最多100条DNAT规则,您无需手动配置。因此,一个公网NAT网关最多同时支持100个DSW实例。更多有关配额的详情,请参见配额

准备工作

  • 当使用公共资源组创建后付费DSW实例时,需要完成以下准备工作:

  • 当使用灵骏智算资源创建DSW实例时,需要创建灵骏智算资源。具体操作,请参见灵骏智算资源配额

  • 如果需要通过公网登录方式(即从本地命令行或其他客户端)远程连接DSW实例,您需要为专有网络创建公网NAT网关并绑定EIP。具体操作,请参见创建公网NAT网关绑定EIP

  • 开通内网DNS解析(PrivateZone),具体操作,请参见开通内网DNS解析

步骤一:获取SSH公钥

直连方式支持VPC内登录和公网登录,如果您需要同时支持两种登录方式,您需要在多个客户端上生成公钥。具体操作步骤如下:

  1. 在本地命令行或VPC内终端设备上,运行以下命令,生成免密登录所需的公钥和私钥文件。

    ssh-keygen -m PEM -t rsa -b 4096

    执行该命令后,默认在以下目录中生成4096位RSA类型的公钥和私钥文件。如果当前位置已存在SSH密钥对,则这些文件将被覆盖。

    • Windows操作系统:保存在C:\Users\<username>\.ssh目录或C:\用户\<username>\.ssh目录。

    • Linux操作系统:root用户保存在/root/.ssh目录;普通用户保存在 /home/<username>/.ssh目录。

    • Mac操作系统:保存在/Users/<username>/.ssh目录。

  2. 配置密钥对保存的文件。

    • (推荐)不指定文件名,直接按回车键(Enter)。默认生成的密钥对文件为~/.ssh/id_rsa(私钥)和~/.ssh/id_rsa.pub(公钥)。

    • (可选)指定自定义密钥对文件名,例如:example_id_rsa。

  3. 根据提示信息设置passphrase,并保存到本地。后续会使用该密码来远程连接DSW实例。

步骤二:开启DSW实例的直连功能

创建DSW实例时开启直连功能

创建DSW实例,其中关键参数配置如下,其他参数配置详情,请参见创建DSW实例

  • 资源组选择灵骏智算资源时:

    参数

    描述

    SSH配置

    SSH公钥

    打开SSH配置开关,将步骤一中生成的公钥文件id_rsa.pub的内容手动复制到该文本框中。

    说明

    如果您需要同时支持VPC内登录和公网登录方式,您需要同时添加多个客户端的公钥。请按照回车换行的方式逐个添加公钥,最多支持添加10个公钥。

    登录方式

    • VPC内登录:默认支持该登录方式。您可以从VPC内的其他终端(例如ECS),通过SSH远程连接DSW实例。

    • 公网登录:您可以在支持VPC内登录的基础上,增加公网登录方式。选中公网登录,并配置以下参数,后续您可以通过本地命令行或其他终端使用SSH远程连接到DSW实例。

      • NAT网关:选择为专有网络创建的公网NAT网关。

      • 弹性公网IP:选择在公网NAT网关中已创建的弹性公网IP。

  • 资源组选择公共资源组时:

    参数

    描述

    网络配置

    专有网络

    选择已创建的专有网络、交换机和安全组。

    安全组

    交换机

    公网访问网关

    请根据您的使用场景进行选择:

    • 公有网关:集群中的DSW实例使用共享的公网带宽。

    • 专有网关:独享带宽,您可以根据需求选择不同的带宽。选择该方式后,您需要为DSW实例关联的专有网络创建公网NAT网关、绑定EIP并配置SNAT条目,否则将无法通过DSW实例访问公网。具体配置方法,请参见DSW通过专有公网网关访问公网

    SSH配置

    说明

    打开网络配置后可见。

    SSH公钥

    打开SSH配置开关,将步骤一中生成的公钥文件id_rsa.pub的内容手动复制到该文本框中。

    说明

    如果您需要同时支持VPC内登录和公网登录方式,您需要同时添加多个客户端的公钥。请按照回车换行的方式逐个添加公钥,最多支持添加10个公钥。

    登录方式

    • VPC内登录:默认支持该登录方式。您可以从VPC内的其他终端(例如ECS),通过SSH远程连接DSW实例。

    • 公网登录:您可以在支持VPC内登录的基础上,增加公网登录方式。选中公网登录,并配置以下参数,后续,您可以通过本地命令行或其他终端使用SSH远程连接到DSW实例。

      • NAT网关:选择为专有网络创建的公网NAT网关。

      • 弹性公网IP:选择在公网NAT网关中已创建的弹性公网IP。

更新DSW实例时开启直连功能

说明

在更新DSW实例并开启直连功能时,如果实例正在运行中,更新操作会立即重启实例。请确保您已保存了实例中的内容。

  1. 进入DSW页面。具体操作,请参见创建DSW实例

  2. 单击DSW实例名称,进入DSW实例详情页面。

  3. 实例配置页签,单击变更配置

  4. 变更实例配置向导页面,填写网络配置SSH配置,配置详情,请参见创建DSW实例时开启直连功能

  5. 单击提交更新

步骤三:安装SSH Server

如果您的DSW实例使用的是预置镜像或基于预置镜像生成的自定义镜像,则已默认安装了SSH Server,您可以跳过该步骤。否则需要按照以下步骤来手动安装SSH Server。

  1. 进入DSW开发环境。

    1. 登录PAI控制台

    2. 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。

    3. 在页面左上方,选择使用服务的地域。

    4. 在左侧导航栏,选择模型开发与训练 > 交互式建模(DSW)

    5. 可选:交互式建模(DSW)页面的搜索框,输入实例名称或关键字,搜索实例。

    6. 单击需要打开的实例操作列下的打开

  2. 在DSW的Terminal中,执行如下命令,setup_ssh.sh工具会自动帮您下载安装SSH Server。

    wget https://dsw-resource.oss-cn-beijing.aliyuncs.com/tools/setup_ssh.sh
    bash setup_ssh.sh

步骤四:远程连接DSW实例

  1. 查看访问方式。

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

    说明

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

  2. 通过SSH远程连接DSW实例。

    • 公网访问

      在本地命令行或其他终端中,使用步骤1查询的公网访问方式远程连接到DSW实例。

      ssh root@xx.xx.xx.xx -p 1024
    • VPC访问

      在VPC内的其他终端(例如ECS实例),使用步骤1查询的VPC访问方式远程连接到DSW实例。

      ssh root@dsw-notebook-xxxx.dsw-xxxx.dsw.pai.alibaba.com -p 22

  3. 使用本地VSCode远程连接DSW实例。

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

      image

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

    3. 输入SSH链接命令。

      image

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

      image

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

      image

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

      image

场景示例:使用云上DSW实例调试/运行本地Notebook代码

前提条件

已按照本文步骤一到步骤三完成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

    如果回显提示如下,表示remote kernel添加成功。

    Added kernel ['rik_ssh_root_121_40_*_*_1024_remotepython']: SSH root@121.40.*.*:1024 Remote Python.
  2. 在本地VSCode中,打开一个Notebook文件,右上角kernel切换,可在搜索框中选到Remote Python。

    image

常见问题

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

    原则上支持所有基于原生SSH协议实现的功能。但需要注意的是,如果您使用PyCharm作为客户端,则会在DSW实例中自动触发下载和安装服务端。因此,您需要确保您指定的DSW实例具有公网访问能力。

  • VPC地址访问不通,如何解决?

    • 请确认您是否使用了自定义镜像,您的自定义镜像里是否安装并开启了SSH服务。详情请参见步骤三:安装SSH Server

    • 请确认您创建实例的安全组规则内,入方向是否允许TCP 22端口的访问。

    • 如果上述方法无法解决您的问题,请联系您的商务经理进行进一步排查。

  • 公网地址访问不通,如何解决?

    • 请先在VPC环境内,确认您的VPC地址是否可以访问DSW实例。

    • 如果VPC地址可以访问,但公网地址无法访问。请确认在您选择的VPC中是否创建了多个公网NAT网关:

      • 如果创建了多个公网NAT网关,请参考同VPC内多公网NAT网关部署方案,检查您的NAT网关、vSwitch和路由表之间的关系是否正确。您在DSW中选择的vSwitch能够在路由表中正确路由到您选择的NAT网关,这样才能使您的SSH请求的返回结果返回到您的客户端。

      • 如果您只有一个公网NAT网关,请使用自助问题排查中的网络连通性问题进行排查。输入您本机的公网IP、您的公网EIP以及DSW实例分配给您的端口(即在DSW实例详情页查询的公网访问方式中配置的端口),分析网络可达性。

相关文档

DSW也支持使用ProxyClient客户端代理工具远程连接DSW实例。具体操作,请参见ProxyClient方式