PAI DSW提供客户端代理工具proxyclient,支持您在本地通过SSH远程连接DSW实例,在VS Code(Visual Studio Code)或Terminal工具中进行机器学习开发。本文为您介绍如何使用DSW proxyclient远程连接DSW实例。
前提条件
在开始执行操作前,请确认您已完成以下准备工作。
- 已创建DSW实例,具体操作,请参见创建及管理DSW实例。
- 已获取阿里云账户的AccessKey ID和AccessKey Secret,具体操作,请参见创建AccessKey。
注意事项
如果您的DSW实例启动时间在2022年8月10日12:00(UTC + 8)之前,请停止实例后重新启动实例,来激活RemoteSSH连接功能。
步骤一:安装SSH Server
如果您的DSW实例使用的是预置镜像或基于预置镜像生成的自定义镜像,则已默认安装了SSH Server,您可以跳过该步骤。否则需要按照以下步骤来手动安装SSH Server。
- 进入PAI-DSW开发环境。
- 登录PAI控制台。
- 在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
- 在页面左上方,选择使用服务的地域。
- 在左侧导航栏,选择 。
- 可选:在交互式建模(DSW)页面的搜索框,输入实例名称或关键字,搜索实例。
- 单击需要打开的实例操作列下的打开。
- 在DSW的Terminal中,执行如下命令。
sudo apt-get update sudo apt-get install openssh-server sudo service ssh start
步骤二:下载和安装DSW proxyclient
- 下载DSW proxyclient客户端工具,并保存到当前用户主目录下。不同的操作系统,需要保存的目录如下:
- Windows操作系统:保存在C:\Users\<username>目录。
- Linux操作系统:root用户保存在/root目录;普通用户保存在 /home/<username>目录。
- Mac操作系统:保存在/Users/<username>目录。
各版本的客户端下载地址如下: - 在命令行中,将下载的客户端文件修改为可执行文件。如果您下载的Windows X86 64版本,则可以跳过该步骤。
其中<proxyclient>表示下载的客户端文件名,需要根据实际情况修改。chmod 755 <proxyclient>
- 生成配置文件。
步骤三:配置SSH认证方式
您可以使用SSH密钥对或账号密码的认证方式连接DSW实例。认证方式配置完成后,您可以单击DSW实例操作列下的保存镜像,将实例保存为镜像,添加的公钥或密码会持久化到实例镜像中,实例重新启动后仍有效。
配置实例免密登录(推荐)
- 生成密钥对。
- 配置服务端公钥。您可以使用以下两种方式,将步骤1中生成的公钥文件
~/.ssh/id_rsa.pub
或自定义文件~/.ssh/example_id_rsa.pub
上传到默认工作空间路径/home/admin/workspace
下。- 方式一:使用DSW实例的JupyterLab上传文件,具体操作,请参见上传下载数据文件。
- 方式二:在DSW实例的Terminal中手动创建并编辑公钥文件,如何进入DSW实例页面,请参见步骤一:安装SSH Server。
- 在DSW实例页面的顶部菜单栏,单击Terminal页签,在欢迎使用DSW Terminal页面中单击创建Terminal。
- 进入
/home/admin/workspace
目录。cd /home/admin/workspace
- 创建id_rsa.pub文件。
touch id_rsa.pub
- 运行以下命令打开id_rsa.pub文件。
vi id_rsa.pub
- 按
i
键进入编辑模式,并将本地生成公钥内容手动复制到该文件中。 - 添加完成后,按Esc键退出编辑模式,并输入
:wq
后按回车键(Enter),保存并退出文件。
- 启用免密登录。在DSW实例的Terminal中执行以下命令,启用免密登录。
cd ~ && mkdir -p .ssh && cat /home/admin/workspace/id_rsa.pub >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys && sudo service ssh start
配置账号密码登录(可选,不推荐)
在DSW实例的Terminal中,参考以下操作步骤,设置密码认证方式。如何进入DSW实例页面,请参见步骤一:安装SSH Server。
- 在DSW实例页面的顶部菜单栏,单击Terminal页签,在欢迎使用DSW Terminal页面中单击创建Terminal。
- 设置root用户密码。
passwd root
- 更改ssh配置文件,启用root用户以密钥或公钥认证方式登录。
- 重启SSH Server服务,使设置生效。
service ssh stop service ssh start
步骤四:添加DSW实例代理
- 进入交互式建模(DSW)页面,具体操作,请参见创建及管理DSW实例。
- 按照下图操作指引,查看并复制DSW实例ID。
- 在本地命令行中,运行以下命令,添加一个DSW实例做为SSH Target Host。
其中<实例ID>需要替换为步骤2中查询的实例ID。#Mac,Linux。 ./proxyclient add -i=<实例ID> #Windows。 proxyclient.exe add -i=<实例ID>
- 查看.ssh/config文件内容,确认代理设置已生效。
# Mac、Linux。 cat .ssh/config # Windows。在本地命令行中,进入用户主目录,使用以下命令查看config文件内容。您也可以直接双击打开config文件。 explorer .ssh\config
- 可选:如果您在生成密钥时,使用自定义的密钥文件名,例如: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实例
使用VS Code远程连接实例
不同的VS Code版本可能在操作步骤上有差异,请按照实际情况进行操作,详情请参见Visual Studio Code。
- 在本地打开VS Code,并参照下图来安装Remote-SSH插件。
- 在VS Code左侧导航栏中,单击
。
- 新增远程连接实例。
- 后续远程连接该DSW实例时,您可以右键单击目标实例,并选择连接方式,根据提示信息进行配置。远程实例连接成功后,即可打开远程文件夹进行本地开发。
使用终端工具远程连接实例
打开终端工具(例如Terminal),执行以下命令,即可登录远程实例。
ssh <实例ID>
其中<实例ID>需要替换为DSW实例的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>