全部产品
Search
文档中心

人工智能平台 PAI:ProxyClient方式

更新时间:Apr 26, 2024

如果您希望通过本地工具(例如VSCode或Terminal)远程连接DSW实例进行机器学习开发,可以使用DSW提供的ProxyClient客户端代理工具。该工具允许您通过SSH远程连接DSW实例,实现本地与DSW实例的连接。

前提条件

在开始执行操作前,请确认您已完成以下准备工作。

  • 已创建DSW实例,具体操作,请参见创建DSW实例

  • 已获取阿里云账户的AccessKey ID和AccessKey Secret,具体操作,请参见创建AccessKey

  • 如果您使用RAM用户或RAM角色通过SSH远程连接DSW实例,请为RAM用户或RAM角色授予访问DSW实例的操作权限,详情请参见云产品依赖与授权:DSW

注意事项

  • 如果您的DSW实例启动时间在2022年8月10日12:00(UTC + 8)之前,请停止实例后重新启动实例,来激活RemoteSSH连接功能。

    说明

    您可以前往控制台的交互式建模(DSW)页面,查看目标实例服务时长列下的服务时间,来判断是否需要重启实例。具体操作,请参见创建DSW实例

  • 按照文档中的操作步骤完成配置后,如果您重启了DSW实例,在重新远程连接DSW实例之前,需要完成以下操作。

    • 对于使用公共资源组创建的DSW实例,您需要在DSW的Terminal中执行sudo service ssh start命令,以启动SSH服务。

    • 对于使用专有资源组创建的DSW实例,如果未挂载数据集,您需要按照文档中的操作步骤重新配置服务端公钥并启用免密登录,或者配置账号密码登录。如果已经挂载了数据集,则需要在DSW的Terminal中执行sudo service ssh start命令,以启动SSH服务。

步骤一:下载和安装DSW ProxyClient

  1. 下载DSW ProxyClient客户端工具,并保存到当前用户主目录下。

    不同的操作系统,需要保存的目录如下:

    • Windows操作系统:保存在用户个人文件夹目录,例如C:\Users\<username>目录或C:\用户\<username>目录。请根据您的实际路径进行选择。

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

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

    其中,<username>需要替换为实际的目录。

  2. 在命令行中,将下载的客户端文件修改为可执行文件。如果您下载的是Windows X86 64版本,则可以跳过该步骤。

    chmod 755 <proxyclient>

    其中<proxyclient>表示下载的客户端文件名,需要根据实际情况修改。

  3. 生成配置文件。

    1. 输入配置命令。

      # Mac,Linux。
      ./proxyclient config
      # Windows。
       proxyclient.exe config
      重要

      Mac首次运行./proxyclient命令时,可能会提示:无法打开”proxyclient“,因为无法验证开发者。请打开Mac OS的系统偏好设置 > 安全性与隐私,设置允许proxyclient运行。

    2. 根据提示设置配置文件路径。

      请输入配置文件名,文件名可以带路径。

      说明
      • 建议直接按回车键(Enter)使用默认路径和配置文件名称。默认为:~/.proxyclientconfig

      • 您也可以指定其他路径和配置文件名称。以Windows X86 64版本为例:C:/Users/<username>/xxx/.proxyclientconfig

      • 如果设置为其他路径,请在后续步骤四中执行./proxyclient add命令时,指定-c--config-file为该路径。

    3. 根据提示分别设置RegionId、AccessKey ID、AccessKey Secret和STSToken参数。

      参数说明如下。

      参数

      说明

      RegionId

      地域ID,例如:华东2(上海)为cn-shanghai。更多其他地域ID,详情请参见地域和可用区列表

      重要

      此处配置的地域ID,需要与DSW实例所在地域一致。

      AccessKey ID

      填写账号的AccessKey,关于如何获取阿里云账户的AccessKey ID和AccessKey Secret,详情请参见创建AccessKey

      AccessKey Secret

      STSToken

      • 当您使用阿里云账号(主账号)或RAM用户(子账号)登录时,不需要配置该参数,置空即可。

      • 当您使用RAM角色登录时,需要使用临时身份凭证,需要配置该参数。关于STSToken的生成方式,请参见获取STS临时Token

      重要

      请确保STS Token在有效期内。

步骤二:配置SSH认证方式

您可以选择使用SSH密钥对或账号密码的认证方式连接DSW实例。认证方式配置完成后,您可以单击DSW实例操作列下的保存镜像,将实例保存为镜像,添加的公钥或密码会持久化到实例镜像中,实例重新启动后仍有效。

方式一:配置实例免密登录(推荐)

  1. 生成密钥对。

    1. 在本地命令行中,运行以下命令,生成免密登录所需的公钥和私钥文件,默认创建的密钥类型为RSA。

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

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

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

        说明

        如果指定了自定义密钥对的文件名,您需要在步骤三:添加DSW实例代理生成的~/.ssh/config中,通过指定IdentityFile的方式来声明私钥文件路径。

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

  2. 进入DSW开发环境。

    1. 登录PAI控制台

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

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

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

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

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

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

    wget https://dsw-resource.oss-cn-beijing.aliyuncs.com/tools/setup_ssh.sh
    bash setup_ssh.sh
  4. 根据提示配置SSH公钥,启动SSH Server。

方式二:配置账号密码登录

在DSW实例的Terminal中,参考以下操作步骤,设置密码认证方式。如何进入DSW实例页面,请参见方式一:配置实例免密登录(推荐)

  1. 在DSW实例页面的顶部菜单栏,单击Terminal页签,在欢迎使用DSW Terminal页面中单击创建Terminal

  2. 设置root用户密码。

    passwd root
  3. 更改ssh配置文件,启用root用户以密钥或公钥认证方式登录。

    1. 打开SSH配置文件。

      vi /etc/ssh/sshd_config
    2. 将配置#PermitRootLogin prohibit-password修改为PermitRootLogin yes,并保存配置文件。

  4. 重启SSH Server服务,使设置生效。

    service ssh stop
    service ssh start

步骤三:添加DSW实例代理

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

  2. 按照下图操作指引,查看并复制DSW实例ID。

    e08dad9ce3e2dc97cbebdea95b9cea14

  3. 在本地命令行中,运行以下命令,添加一个DSW实例作为SSH Target Host。

    其中<实例ID>需要替换为步骤2中查询的实例ID。

    # Mac,Linux:
    ./proxyclient add -i=<实例ID>
    # Windows:
    proxyclient.exe add -i=<实例ID>
  4. 查看.ssh/config文件内容,确认代理设置已生效。

    # Mac、Linux。
    cat .ssh/config
    
    # Windows。在本地命令行中,进入用户主目录,使用以下命令查看config文件内容。您也可以直接双击打开config文件。
    explorer .ssh\config
  5. 可选:如果您在生成密钥时,使用自定义的密钥文件名,例如:example_id_rsa。请参考以下示例修改~/.ssh/config文件,使用IdentityFile指定连接Host时使用的密钥文件路径。

    Host dsw-b7a2765b267e****
        HostName dsw-b7a2765b267e****
        User root
        ProxyCommand ~/proxyclient connect --region-id=cn-hangzhou --instance-id=dsw-b7a2765b267e**** --config-file=***
        ServerAliveInterval 30
        IdentityFile ~/.ssh/example_id_rsa

步骤四:远程连接DSW实例

使用VSCode远程连接实例

不同的VSCode版本可能在操作步骤上有差异,请按照实际情况进行操作,详情请参见Visual Studio Code

  1. 在本地打开VSCode,并参照下图来安装Remote-SSH插件。

    SSH

  2. 在VSCode左侧导航栏中,单击Remote explorer

    SSH Targets

  3. 新增远程连接实例。

    1. 单击SSH后的新增新增远程连接实例。在弹出的文本框中输入DSW实例ID,并按回车键(Enter)。

      Remote

    2. 单击并选择需要更新的config文件。

      配置文件

    3. 在VSCode右下角弹出的Host added对话框中,单击Connect

      Connect

    4. 单击Linux,选择DSW实例的操作平台。

      操作平台

    5. 在文本框中输入上述步骤三中保存到本地的passphrase,并按回车键(Enter)。

      passphrase当VSCode打开欢迎页面时,表示连接成功。后续您可以在VSCode页面打开远程文件夹进行本地开发。VS Code

  4. 后续远程连接该DSW实例时,您可以右键单击目标实例,并选择连接方式,根据提示信息进行配置。

    连接方式

    远程实例连接成功后,即可打开远程文件夹进行本地开发。

使用终端工具远程连接实例

打开终端工具(例如本地命令行),执行以下命令,即可登录远程实例。

其中<实例ID>需要替换为DSW实例的ID。

ssh <实例ID>

您也可以通过scp命令,在本地主机和远程实例之间复制文件或目录。

# 本地文件复制到远程实例。
scp local_file_path root@<DSW实例ID>:<remote_file_path>
# 本地目录复制到远程实例。
scp -r local_dir root@<DSW实例ID>:<remote_dir>
# 从远程实例复制文件到本地。
scp root@<DSW实例ID>:<remote_file_path> <local_file_path>
# 从远程实例复制文件目录到本地。
scp -r root@<DSW实例ID>:<remote_dir> <local_dir>

相关文档

使用ProxyClient客户端代理工具可能会影响使用体验,例如频繁需要重连、速度低等。因此,建议您使用直连方式远程连接DSW实例,或控制台方式直接访问DSW实例,以提高连接质量。