跳到主要内容

CLI SSH 连接运行中的 Jupyter

信息过期提醒

如果你在运行的 Jupyter 工作空间里可以看到如下图所示的「SSH 访问」信息,说明你的 Jupyter 工作空间已经支持新的 SSH 连接方式了,无需这种方式远程登录了。详细的文档可以参考 通过 SSH 连接运行中的 Jupyter 执行

功能介绍

OpenBayes 支持通过 SSH 协议来访问运行中的 Jupyter 类型的执行。通过完成以下步骤就可以实现 SSH 访问了:

  1. 向 OpenBayes 上传个人的 SSH 公钥
  2. 在本地增加 OpenBayes SSH 访问的配置
  3. 通过命令 ssh <running-jupyter-id>.gear 实现 SSH 登录
备注

只有运行中的「Jupyter 工作空间」才能通过 SSH 协议访问。

准备公钥

生成公钥

打开命令行输入 ssh-keygen -m PEM -t rsa -b 4096 -C "your.email@example.com" (自己的邮箱) ,连续点击 Enter 即可生成一个密钥对。Windows 用户推荐采用 PowerShell 进行这步操作。

ssh-keygen -t rsa -b 4096 -C "your.email@example.com"
# Creates a new ssh key, using the provided email as a label
# Generating public/private rsa key pair.
Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter] // 推荐使用默认地址
Enter passphrase (empty for no passphrase): //此处点击 Enter 键即可,也可以填写密码,填写密码后每次使用 SSH 方式推送代码时都会要求输入密码,由于这个 Key 也不是用于军事目的,所以也无需设置密码
备注

如果你对这部分非常了解可以按照常规创建公钥的流程即可,更多的信息可以参见 生成 SSH 公钥

成功后显示如下信息:

Your identification has been saved in /Users/you/.ssh/id_rsa.
# Your public key has been saved in /Users/you/.ssh/id_rsa.pub.
# The key fingerprint is:
# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your.email@example.com

添加公钥

  1. 打开 ~/.ssh 目录(Windows 下为用户目录的 .ssh 目录),用编辑器打开 id_rsa.pub 文件(此处是生成公钥的默认名称,如果生成公钥时采用了其他名称,打开相对应的文件即可),复制全部内容。
  2. 登录 OpenBayes 页面,在界面左侧导航栏点击「SSH 设置」->「添加新公钥」,将内容粘贴到「公钥」的文本框里并给自己的这个 SSH 公钥起个名字,点击添加 SSH 公钥即可。

通过命令行工具创建以及上传 SSH 公钥

如果你在本地没有任何公钥,可以通过命令 bayes ssh create 完成公钥的创建和上传。如果你在本地已经有了名为 ~/.ssh/id_rsa.pub 的公钥,通过 bayes ssh upload ~/.ssh/id_rsa.pub 即可完成公钥的上传。

备注

安装 bayes 命令行工具 了解 bayes 命令行工具的安装方法。

初始化本地 SSH 配置

在添加完成公钥到 OpenBayes 后需要在本地添加额外设置。这部分通过命令行的命令:

bayes ssh init

即可完成。

登录运行的 Jupyter 执行

首先打开一个 Jupyter 执行,当执行处于「运行中」的状态后,通过命令

ssh <jupyter-job-id>.gear

即可完成连接。

其中 <jupyter-job-id> 是指当前的「执行」的 id,可以在页面上获取:

通过 VS Code SSH 连接

如果是通过 SSH 远程连接运行中的 Jupyter 环境,首先请阅读 VS Code 相关文档 Remote Development using SSH 了解 VS Code 对这方面的支持。并安装相应的插件。

  1. 首先点击左下角,打开远程窗口。

  2. 在命令面板选择「Connect to Host...」并回车。

  3. 输入 root@jupter-job-id.gear,注意要把 jupyter-job-id 部分替换成需要连接的 Jupyter 容器的 id,我这里的 id 是 iay6ih7xrgal

  4. 从「容器概览」可以看到运行的执行以及其 id。

VS Code 会弹出一个新的窗口并提示连接成功了。目前其所指向的目录为 /root 而不是 OpenBayes 所默认使用的工作目录,点击左侧栏目中「打开文件夹」切换到 /openbayes/home 就可以看到目录中的内容了。