如果您希望通过本地工具(例如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
下载DSW ProxyClient客户端工具,并保存到当前用户主目录下。
不同的操作系统,需要保存的目录如下:
Windows操作系统:保存在用户个人文件夹目录,例如C:\Users\<username>目录或C:\用户\<username>目录。请根据您的实际路径进行选择。
Linux操作系统:root用户保存在/root目录;普通用户保存在 /home/<username>目录。
Mac操作系统:保存在/Users/<username>目录。
其中,<username>需要替换为实际的目录。
各版本的客户端下载地址如下:
在命令行中,将下载的客户端文件修改为可执行文件。如果您下载的是Windows X86 64版本,则可以跳过该步骤。
chmod 755 <proxyclient>
其中<proxyclient>表示下载的客户端文件名,需要根据实际情况修改。
生成配置文件。
输入配置命令。
# Mac,Linux。 ./proxyclient config # Windows。 proxyclient.exe config
重要Mac首次运行
./proxyclient
命令时,可能会提示:无法打开”proxyclient“,因为无法验证开发者
。请打开Mac OS的 ,设置允许proxyclient运行。根据提示设置配置文件路径。
请输入配置文件名,文件名可以带路径。
说明建议直接按回车键(Enter)使用默认路径和配置文件名称。默认为:
~/.proxyclientconfig
。您也可以指定其他路径和配置文件名称。以Windows X86 64版本为例:
C:/Users/<username>/xxx/.proxyclientconfig
。如果设置为其他路径,请在后续步骤四中执行
./proxyclient add
命令时,指定-c
或--config-file
为该路径。
根据提示分别设置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实例操作列下的保存镜像,将实例保存为镜像,添加的公钥或密码会持久化到实例镜像中,实例重新启动后仍有效。
方式一:配置实例免密登录(推荐)
生成密钥对。
在本地命令行中,运行以下命令,生成免密登录所需的公钥和私钥文件,默认创建的密钥类型为RSA。
ssh-keygen
配置密钥对保存的文件。
(推荐)不指定文件名,直接按回车键(Enter)。默认生成的密钥对文件为
~/.ssh/id_rsa
(私钥)和~/.ssh/id_rsa.pub
(公钥)。(可选)指定自定义密钥对的文件名,例如:example_id_rsa。
说明如果指定了自定义密钥对的文件名,您需要在步骤三:添加DSW实例代理生成的
~/.ssh/config
中,通过指定IdentityFile的方式来声明私钥文件路径。
根据提示信息设置passphrase,并将其保存到本地。后续会使用该密码来远程连接DSW实例。
进入DSW开发环境。
登录PAI控制台。
在左侧导航栏单击工作空间列表,在工作空间列表页面中单击待操作的工作空间名称,进入对应工作空间内。
在页面左上方,选择使用服务的地域。
在左侧导航栏,选择
。可选:在交互式建模(DSW)页面的搜索框,输入实例名称或关键字,搜索实例。
单击需要打开的实例操作列下的打开。
在DSW的Terminal中,执行如下命令,setup_ssh.sh工具会自动帮您下载安装SSH Server。
wget https://dsw-resource.oss-cn-beijing.aliyuncs.com/tools/setup_ssh.sh bash setup_ssh.sh
根据提示配置SSH公钥,启动SSH Server。
方式二:配置账号密码登录
在DSW实例的Terminal中,参考以下操作步骤,设置密码认证方式。如何进入DSW实例页面,请参见方式一:配置实例免密登录(推荐)。
在DSW实例页面的顶部菜单栏,单击Terminal页签,在欢迎使用DSW Terminal页面中单击创建Terminal。
设置root用户密码。
passwd root
更改ssh配置文件,启用root用户以密钥或公钥认证方式登录。
打开SSH配置文件。
vi /etc/ssh/sshd_config
将配置
#PermitRootLogin prohibit-password
修改为PermitRootLogin yes
,并保存配置文件。
重启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实例
使用VSCode远程连接实例
不同的VSCode版本可能在操作步骤上有差异,请按照实际情况进行操作,详情请参见Visual Studio Code。
在本地打开VSCode,并参照下图来安装Remote-SSH插件。
在VSCode左侧导航栏中,单击。
新增远程连接实例。
单击SSH后的新增远程连接实例。在弹出的文本框中输入DSW实例ID,并按回车键(Enter)。
单击并选择需要更新的config文件。
在VSCode右下角弹出的Host added对话框中,单击Connect。
单击Linux,选择DSW实例的操作平台。
在文本框中输入上述步骤三中保存到本地的passphrase,并按回车键(Enter)。
当VSCode打开欢迎页面时,表示连接成功。后续您可以在VSCode页面打开远程文件夹进行本地开发。
后续远程连接该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实例,以提高连接质量。