
# 在VS Code中一键连接Notebook
当Notebook启用SSH远程开发后，本地的VS Code可以一键连接到Notebook。
#### 前提条件
- 已安装VS Code推荐版本并满足约束限制。详细信息，请参见[VS Code推荐版本及约束限制](https://support.huaweicloud.com/devtool-modelarts/devtool-modelarts_0019.html#ZH-CN_TOPIC_0000001402157240__section9990213541)。
- 已在[DEW管理控制台](https://console.huaweicloud.com/dew/?locale=zh-cn#/dew/)创建账号密钥对或私有密钥对，并将密钥文件并存放在以下目录中。具体操作，请参见[创建密钥对](https://support.huaweicloud.com/usermanual-dew/dew_01_0034.html)。
  - Windows：C:\\Users\\{{user}}
  
  - macOS/Linux：\~
  
  
  如果创建账号密钥对或私有密钥对时，勾选"我同意将密钥对私钥托管"，则密钥可重复下载（在"账号密钥对"或"私有密钥对"页面的操作列单击"导出私钥"）；如果未勾选"我同意将密钥对私钥托管"，则仅创建时会自动下载，后续无法下载，请妥善保存。
  图1我同意将密钥对私钥托管   
  ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002671135159.png "点击放大")
  
  
- Notebook实例已开启SSH远程开发（密钥对选择已创建的账号密钥对或私有密钥对），且该实例状态为"运行中"。
  - 关于如何新建Notebook实例，请参见[创建Notebook实例](https://support.huaweicloud.com/devtool-modelarts/devtool-modelarts_3495.html)。
  
  - 关于如何在已有Notebook实例开启SSH远程开发，请参见[开启SSH远程开发](https://support.huaweicloud.com/devtool-modelarts/modelarts_30_0051.html#ZH-CN_TOPIC_0000001402317016__section671554385910)。
   
 
#### VS Code连接Notebook
1. 登录[ModelArts管理控制台](https://console.huaweicloud.com/modelarts/)，在左侧导航栏按需选择以下操作。
   - 新版：选择"模型开发与训练 \> Notebook"，进入"Notebook"页面。
   
   - 旧版：选择"开发空间 \> Notebook"，进入"Notebook"页面。
    
2. 单击Notebook实例操作列的"接入环境"，在"接入方式"对话框，选择"本地"页签，单击VS Code接入右侧的"接入"。
3. 单击"打开 VS Code"。
   - 私钥：界面会直接显示"开启SSH远程开发"时选择的私钥名称。
   
   - VS Code：安装了VS Code，界面会显示"已安装 VS Code 客户端"。
   
   
   图2打开VS Code   
   ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002641215304.png "点击放大")
   
   
4. 如果用户之前未安装过ModelArts VS Code插件，此时会弹出安装提示，请单击"Install and Open"进行安装；如果之前已经安装过插件，则不会有该提示，请跳过此步骤，直接执行下一步[远程连接Notebook实例]。
   图3安装VS Code插件   
   ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001452637545.png "点击放大")
   安装过程预计1\~2分钟，安装完成后右下角会弹出对话框，请单击"Reload Window and Open"。
   ![](https://support.huaweicloud.com/devtool-modelarts/public_sys-resources/note_3.0-zh-cn.png)
   本文以VS Code 1.86版本的操作为例，其他版本的VS Code可能不会弹出"Reload Window and Open"，请直接执行下一步[远程连接Notebook实例]。
   图4Reload Window and Open   
   ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001402477304.png "点击放大")
   在弹出的提示中，勾选"Don't ask again for this extension"，然后单击"Open"。
   图5勾选"Don't ask again for this extension"，单击"Open"   
   ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001402317304.png "点击放大") 
5. 远程连接Notebook实例。
   远程连接执行前，会自动在（Windows：C:\\Users\\{{user}}\\.ssh或者downloads；Mac/Linux: /Users/{{user}}/.ssh或者downloads）目录下根据密钥名称查找密钥文件。
   - 如果找到则直接使用该密钥打开新窗口并尝试连接远程实例，此时无需选择密钥。
     图6远程连接Notebook实例   
     ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001599201281.png "点击放大") 
   
   - 如果未找到会弹出选择框，请根据提示选择正确的密钥。
     ![](https://support.huaweicloud.com/devtool-modelarts/public_sys-resources/note_3.0-zh-cn.png)
     密钥文件名不能包含中文字符。
     图7选择密钥文件   
     ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001452797345.png "点击放大")
     如果密钥选择错误，则弹出提示信息，请根据提示信息选择正确密钥。
     图8选择正确的密钥文件   
     ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001402157520.png "点击放大") 
   
   
   
   当左下角显示如下状态时，代表实例连接成功：
   图9实例连接成功   
   ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001963929344.png "点击放大")
   当弹出如下错误时，代表实例连接失败，请关闭弹窗，并查看OUTPUT窗口的输出日志，请查看[FAQ](https://support.huaweicloud.com/trouble-modelarts/modelarts_05_0513.html)并排查失败原因。
   图10实例连接失败   
   ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001963769524.png "点击放大") 
 
#### 远程调试代码
1. 在VS Code界面，上传本地代码到云端开发环境。
   1. 单击"File \> OpenFolder"，选择要打开的路径，单击"OK"。
      图11Open Folder   
      ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001974070748.png "点击放大")
      图12选择文件路径   
      ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000001973911016.png "点击放大") 
   
   
   
   2. 此时，会在IDE左侧出现该开发环境下的目录结构，选择想要上传的代码及其他文件，拖拽至目录对应的文件夹内即完成本地代码上传至云端。
   
   3. 在VS Code中打开要执行的代码文件，在执行代码之前需要选择合适的Python版本路径，单击下方默认的Python版本路径，此时在上方会出现该远程环境上所有的python版本，选择自己需要的版本即可。
      图13选择Python版本   
      ![](https://support.huaweicloud.com/devtool-modelarts/figure/zh-cn_image_0000002010510721.png "点击放大") 
   
   
   
   
2. 对于打开的代码文件，单击run按钮，即可执行，可以在下方的Terminal中看到代码输出信息。
   - 如果执行较长时间的训练作业，建议使用nohup命令后台运行，否则SSH窗口关闭或者网络断连会影响正在运行的训练作业，命令参考：
     ```
     nohup your_train_job.sh > output.log 2>&1  &  tail -f  output.log
     ```
     
   
   - 如果要对代码进行debug调试，步骤如下：
     1. 单击左侧"Run \> Run and Debug"。
     
     2. 选择当前打开的默认Python代码文件进行调试。
     
     3. 对当前代码进行打断点，即在代码左侧进行单击，就会出现小红点。
     
     4. 此时，即可按照正常的代码调试步骤对代码进行调试，在界面左边会显示debug信息，代码上方有相应的调试步骤。
      
    
 
#### 相关文档
如果VS Code连接Notebook失败，请参考[VS Code连接开发环境失败故障处理](https://support.huaweicloud.com/trouble-modelarts/modelarts_05_0513.html)。
