通过 SSH 远程使用 Notebook

本教程演示如何通过 SSH 连接远程使用 Notebook。

准备

  • 创建了一个启用 SSH 选项的 Notebook。
  • 确认该 Notebook 处于正常运行状态。

端口转发

命令行工具 t9k-pf

命令行工具 t9k-pf 的功能类似于 kubectl port-forward,可以让用户能够在本地通过端口转发的方式访问 TensorStack AI 平台的各种资源。

请参照用户指南,下载安装 t9k-pf 并配置身份认证和授权

端口转发命令

在 Notebook 详情页面,查看并复制SSH 服务提示的命令:

copy-t9k-pf-command

在终端执行该命令以进行端口转发:

$ t9k-pf notebook <URL> <Port>
now you can forward to your target by 127.0.0.1:<Port>

参数说明如下:

  • URL:Notebook 的 Web UI 地址。除上述获取方式外,你也可以在打开 Notebook 后,复制浏览器地址栏中的地址作为 URL 参数使用。
  • Port:转发的本地端口。在 SSH 远程连接教程中会使用到该端口。

根据终端打印的提示信息,使用本地的端口与目标 Notebook 建立 SSH 连接,具体命令请参阅 SSH 远程连接

建立 SSH 连接

使用终端

在终端中运行以下命令以连接到 Notebook:

ssh t9kuser@localhost -p <Port> \
  -o StrictHostKeyChecking=no \
  -o GlobalKnownHostsFile=/dev/null \
  -o UserKnownHostsFile=/dev/null

然后在终端中操作 Notebook:

terminal-ssh

使用 VSCode

安装 Remote SSH 插件

在 VSCode 中搜索 Remote - SSH 插件并安装:

vscode-plugin

添加 SSH Config

安装完成后,需要在 SSH Config 中添加主机(Notebook)的信息。

VSCode 提供了编辑 SSH Config 的方式。点击左下角的绿色 >< 符号,选择 Connect to Host,然后拉动滚动条到最下方,点击 Add New SSH Host

vscode-new-host

根据提示,输入以下内容,然后按下回车键(Enter):

ssh t9kuser@localhost -p <Port>
vscode-ssh-command

VSCode 会提示 Select SSH configuration file to update,第一个选择项通常是位于 $HOME/.ssh/config 的配置文件,你可以选择将主机的信息存储在第一个配置文件中。

连接到 Notebook

点击左下角的绿色 >< 符号,选择 Connect to Host

vscode-connect

然后选择 SSH Config 中对应的主机名(使用上述配置方式时,主机名为 localhost):

vscode-connect-select

VSCode 会新建一个窗口,等待连接建立之后,左下角会提示 SSH: Host

点击 Open Folder 可以选择打开的目录或者文件。你可以和本地开发一样使用 VSCode 来操作 Notebook:

vscode-connected

使用 PyCharm

使用 PyCharm 远程连接到 Notebook 需要满足以下前提条件:

  1. 安装了 PyCharm 专业版,且版本不低于 2022.2。PyCharm 有专业版(Professional)和社区版(Community),目前仅 PyCharm Professional 支持远程 SSH 开发。
  2. Notebook 的资源配置至少为 3 个 CPU,3 GiB 内存,Notebook 绑定的持久卷至少有 2.5 GiB 的可用空间。推荐配置为至少 4 个 CPU,4 GiB 内存,5 GiB 持久卷。

打开 PyCharm,在左侧的导航菜单中点击 Remote Development > SSH,然后点击右侧的 New Connection

pycharm-ssh

在弹出的对话框中填写如下参数:

  • Username:SSH 使用的用户名。
  • Host:主机地址,通常为 127.0.0.1
  • Port:端口。
  • Specify private key:建议勾选,并选择与你上传的公钥对应的私钥。
pycharm-connect

点击 Check Connection and Continue,进入下一步:

pycharm-connected

这里选择了在 Notebook 中安装的 IDE Backend 版本为 PyCharm 2022.2.3,远程打开的项目目录为 /t9k/mnt。点击 Download IDE and Connect 后,就可以通过 PyCharm 访问 Notebook 中的文件了。

pycharm-edit

你可以和本地开发一样使用 PyCharm 来操作 Notebook:

参考