Jupyterlab on Server

Introduction to jupyterlab, install and configure it on linux server, and give remote access. Modified: 2023-10-27 20:01:58 Created: 2023-03-28 16:22:25 Tags: #jupyterlab #python #linux

JupyterLab 是一个基于 Web 的交互式开发环境,可以用于数据科学、数值计算、机器学习等领域的开发和研究工作。Jupyter 是 JUlia、PYTR 三者的合写。

1 安装

有两种方式:直接在机器上安装和基于 docker 安装。

1.1 直接安装

用 python 的包管理器就行,pipconda都可以。

python3 -m pip install --user --upgrade jupyterlab

1.2 用 docker

首先需要安装 docker,可以参考本网站其他部分。然后获取相应的 docker image,这部分也可以参照这里

docker pull jupyter/datascience-notebook

2 配置 jupyterlab

2.1 本地安装的 jupyter 用 systemctl 来管理

需要创建一个jupyter.service文件,地址是/etc/systemd/system/jupyter.service

[Unit]
Description=Jupyter Lab
After=syslog.target network.target

[Service]
User=your_username
Group=your_groupname
Environment="PATH=/usr/local/bin:/usr/bin:/bin"
ExecStart=/usr/bin/jupyter lab --ip=0.0.0.0 --port=8888 --no-browser
WorkingDirectory=/home/your_username/
Restart=always
RestartSec=10
KillMode=mixed

[Install]
WantedBy=multi-user.target

注意,您需要将 UserGroup 字段替换为您的用户名和组名。WorkingDirectory 字段应指向您要在其中运行 Jupyter Lab 的目录。对服务进行管理:

sudo systemctl daemon-reload
sudo systemctl start jupyter
sudo systemctl enable jupyter

配置防火墙规则。如果您的服务器上启用了防火墙,请确保开放 Jupyter Lab 使用的端口(默认情况下为 8888)。

2.2 使用 docker 来配置

创建一个文件夹用于存储 JupyterLab 的配置文件,例如:

mkdir jupyterlab_config

在终端中,使用以下命令来拉取 JupyterLab 的 Docker 镜像:

docker pull jupyter/scipy-notebook

该命令将从 Docker Hub 中拉取 JupyterLab 的 scipy-notebook 版本的镜像。你可以选择其他版本,例如 jupyter/datascience-notebook 或者 jupyter/minimal-notebook,具体可以参考 Docker Hub 中的文档。运行以下命令来启动 JupyterLab 容器:

docker run -p 8888:8888 -v /path/to/jupyterlab_config:/home/jovyan/.jupyter jupyter/scipy-notebook

这将启动 JupyterLab 容器,并将本地的 8888 端口映射到容器的 8888 端口,同时将 JupyterLab 的配置文件存储在本地 /path/to/jupyterlab_config 文件夹中。

在浏览器中访问 JupyterLab,输入 http://localhost:8888 并按下回车键。你将看到 JupyterLab 的登录页面。在登录时,请使用 token 身份验证,可以在容器日志中找到该令牌,或者可以使用以下命令来获取令牌:

docker logs <container_name_or_id>

在容器日志中,可以找到类似于下面这样的令牌:

http://127.0.0.1:8888/?token=xxxxxxxxxxxx

将令牌复制并粘贴到登录页面上即可。

完成后,可以在 JupyterLab 中使用自己的 Python 代码和库了。

3 安全功能

主要是配置密码,开启 2FA。

3.1 配置密码

要设置 JupyterLab 的密码,请运行以下命令:

jupyter notebook password

然后,按照提示输入所需的密码即可。密码将以哈希方式存储在您的 JupyterLab 配置文件中。

3.1 使用 2fa 来配置

要启用 JupyterLab 的 2FA,可以使用 jupyter-server-mfa 扩展。以下是一些简单的步骤:

python3 -m pip install jupyter-server-mfa

生成并设置共享密钥。以下命令生成 64 字节的随机密钥:

jupyter mfa-keygen

将生成的密钥保存在安全的地方,并将其添加到 JupyterLab 配置文件中:

c.ServerMFA.shared_secret = b'your_secret_key'

配置 JupyterLab。要启用 2FA,需要在 JupyterLab 配置文件中添加以下行:

c.ServerApp.authenticator_class = 'jupyter_server_mfa.MFAAuthenticator'
c.ServerApp.disable_check_xsrf = True

重新启动 JupyterLab,然后使用用户名和密码登录。登录后,您将被要求输入 TOTP(时间同步一次性密码)代码,可以使用 Google Authenticator 或类似的应用程序生成它。

希望这些步骤可以帮助您在 JupyterLab 中设置密码或启用 2FA。请记住,使用强密码、2FA 等安全措施可以帮助保护您的系统和数据。