在Jupyter下运行sshd
项目描述
jupyter-sshd-proxy
启用远程Jupyter服务器上的ssh访问。
主要用于与远程JupyterHubs一起使用,因此用户可以通过 ssh
访问它们。启用了一切通常用 ssh
做的事情 - 复制文件、运行交互式命令、使用专有的VSCode 远程开发 功能等!
用法
对于本文档,我们将假设您在一个容器化的JupyterHub环境中运行(例如kubernetes或docker)。 jupyter-sshd-proxy
本身不需要容器化 - 这只是为了使说明更容易。
服务器先决条件
以下包必须存在于容器环境中
- openssh。您可以从
conda-forge
或从apt
安装它,具体取决于您的需求。 jupyter-sshd-proxy
本身必须在容器中预先安装 - 您 不能 在启动容器后使用!pip
动态安装它。
可以使用 quay.io/yuvipanda/pangeo-jupyter-sshd-proxy:latest
的Docker镜像进行测试。它基于pangeo-notebook Docker镜像,并已预先安装所需的先决条件。您可以在本存储库中找到它的源 Dockerfile
。
客户端先决条件
必须在客户端机器上安装 websocat。在Mac OS上,使用 brew install websocat
,对于所有其他操作系统,都提供了预构建的二进制文件 。
启动您的服务器
jupyter-sshd-proxy
仅在您启动JupyterHub服务器后才能工作。所以,启动您的服务器!
创建JupyterHub令牌
我们需要创建一个JupyterHub令牌进行身份验证。
-
转到JupyterHub控制面板。您可以通过在JupyterLab中选择
文件 -> Hub控制面板
或直接访问https://<your-hub-url>/hub/home
来访问它。 -
在上面的工具栏中,选择 令牌。
-
创建一个新的令牌,并妥善保管。 把它当作你对JupyterHub实例的密码来对待!建议您为此设置一个过期日期。
配置您的本地 ~/.ssh/config
我们将设置SSH配置文件,以告诉ssh
如何连接到我们的JupyterHub。将以下条目添加到您的~/.ssh/config
文件末尾(如果不存在,请创建它)。
Host <YOUR-JUPYTERHUB-DOMAIN>
User <YOUR-JUPYTERHUB-CONTAINER-USER-NAME>
ProxyCommand websocat --binary -H='Authorization: token <YOUR-JUPYTERHUB-TOKEN>' asyncstdio: wss://%h/user/<YOUR-JUPYTERHUB-USERNAME>/sshd/
替换
<YOUR-JUPYTERHUB-DOMAIN>
用您的hub域名(例如,hub.openveda.cloud
)<YOUR-JUPYTERHUB-TOKEN>
用您之前生成的令牌<YOUR-JUPYTERHUB-USERNAME>
用您的jupyterhub用户名<YOUR-JUPYTERHUB-CONTAINER-USERNAME>
是在您的JupyterHub容器内创建的Unix用户名。这通常是jovyan
。您可以在JupyterHub的终端中运行whoami
或id
来验证这一点。
以下是一个示例
Host hub.openveda.cloud
User jovyan
ProxyCommand websocat --binary -H='Authorization: token a56ff59c93f64fb587f46b06af9422ee' asyncstdio: wss://%h/user/yuvipanda/sshd/
我们快要完成了!
在您的JupyterHub服务器上设置ssh密钥
仍然有两个级别的认证 - 您的JupyterHub令牌以及一些ssh密钥。您需要在启动JupyterHub服务器后,将一些ssh公钥放入~/.ssh/authorized_keys
,并在ssh客户端机器上提供私钥。
最简单的方法是依赖您的GitHub公钥!
-
启动您的JupyterHub服务器后,在JupyterLab中打开一个终端
-
运行以下命令
mkdir -p ~/.ssh wget https://github.com/<YOUR-GITHUB-USERNAME>.keys -O ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys
将
<YOUR-GITHUB-USERNAME>
替换为您的github用户名。
有了这些,我们就准备就绪了!
通过ssh
进入您的JupyterHub!
在所有这些设置完成后,您现在可以通过ssh进入!试试
ssh <YOUR-JUPYTERHUB-DOMAIN>
它应该只需工作!您还可以使用Visual Studio代码的Remote SSH功能,使用sftp
复制文件(虽然会慢一些),创建隧道等!
项目详情
jupyter_sshd_proxy-0.2.0.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 61e0b058590f642cc6ef13b952826a7ad3127447cb986a840b8399eba93b1cfb |
|
MD5 | edecb0b6bfe099902da80ee5973ca3fe |
|
BLAKE2b-256 | fa650a03474fd6044edbdabf5c73a18642b5f50655c8571f6a8a16feb53b8d15 |
jupyter_sshd_proxy-0.2.0-py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 9699d1373e802b67515b0a83a8b1c99c75450112fb80aa1a98207cc330ce531e |
|
MD5 | b7600202ddc97171dcf0bfda54db8abe |
|
BLAKE2b-256 | 90f50db3c4258a787724e2e20b2d1864e4c64ea1cc54fa297a060779631fcfa7 |