跳到主要内容

通过 SSH 连接运行中的 Jupyter 工作空间

功能介绍​

大模型算力管理平台 支持通过 SSH 协议来访问运行中的 Jupyter 类型的执行。有两种通过 SSH 访问机器的验证方式:

  1. 基于密码的验证:这种方式需要用户输入密码进行身份验证。
  2. 基于公钥的验证:这种方式使用公钥加密技术进行身份验证。它涉及在客户端生成一对密钥(公钥和私钥),并将公钥添加到 大模型算力管理平台。私钥被安全地保存在本地机器上,并用于在不需要密码的情况下进行身份验证。
注意

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

使用密码​

在工作空间创建成功后,页面会出现 ssh 登录相关的信息,也会为该容器创建一个密码,通过该密码可以完成 SSH 的身份验证,无需其他步骤。

如上图所示,点击「复制密码」即可。

使用公钥​

通过完成以下步骤就可以实现 SSH 访问了:

  1. 向 大模型算力管理平台 上传个人的 SSH 公钥
  2. 在本地增加 大模型算力管理平台 SSH 访问的配置
  3. 通过命令 ssh root@xxx -pxxxx 实现 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. 登录 大模型算力管理平台 页面,在界面左侧导航栏点击「SSH 设置」->「添加新公钥」,将内容粘贴到「公钥」的文本框里并给自己的这个 SSH 公钥起个名字,点击添加 SSH 公钥即可。

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

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

备注

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

通过命令行登录​

1. 获取 ssh 登录信息​

在启动「工作空间」后,其页面会展示 ssh 登录信息,如下图所示:

点击「复制命令」即可将命令拷贝到剪贴板,其命令行展示如下:

ssh root@ssh.openbayes.com -p30360

其中 root 为用户名,ssh.openbayes.com 为服务器地址,可能是 IP 也可能是 openbayes 所指定的其他域名,30360 为端口号。

2. 登录运行的 Jupyter 工作空间​

将上述命令粘贴到命令行或按照上面的信息填写到其他支持 ssh 的客户端中即可实现通过 ssh 登录运行的 Jupyter 工作空间。

如果你没有上传本地的公钥,则在这个步骤需要粘贴 SSH 的登录密码。

3. WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED​

如果将 ssh 登录命令粘贴到命令行中展示如上的报错,那需要做一个额外的步骤解决这个冲突。

在命令行下输入如下信息:

ssh-keygen -R [ssh.openbayes.com]:<你的工作空间的端口>

然后再次粘贴从「工作空间」复制的 ssh 命令即可。

通过 VS Code SSH 连接​

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

1. 安装 VS Code SSH 插件​

安装如上插件。

2. 在 VS Code 中配置 ssh 连接​

点击左下角,打开远程窗口。

在命令面板选择「Connect to Host...」并回车。在下拉框滚动到最底部,看到「Add New SSH Host..」,点击即可添加新的 SSH 连接。

输入完整的 ssh 命令,点击回车后使用默认的 ssh 配置文件,无需修改。

再次点击 vscode 左下角的远程窗口,点击「Connect to Host...」,选择已经配置好的 SSH 连接,点击「Connect」即可连接。

3. 修改默认的访问目录​

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

4. 安装额外插件以支持 Jupyter 文件的执行​

在 ssh 远程登录的情况下,如果你需要在容器内执行 .ipynb 文件,需要安装相应的插件。

新建文件 main.ipynb 双击后在页面的右上角会显示 Select Kernel 点击后会要求安装插件:

按照提示,点击「Install in SSH...」。

安装完成后回到刚才的 main.ipynb 页面,发现右上角已经选择了默认的 kernel 了,并且可以执行 python 命令了。