JupyterLab 7 重置密码更改了方式,目前「豆包」和「GPT-4o mini」给出的答案(后者的知识截至 23 年 10 月)都是错误的。
手动配置密码:
如果你使用的是 Jupyter Notebook 的密码保护功能,可以在更新后手动重新设置密码。你可以使用以下命令生成密码哈希:
from notebook.auth import passwd passwd()
这将提示你输入密码并返回一个哈希值。你可以将这个哈希值添加到 ~/.jupyter/jupyter_notebook_config.py 文件中,使用如下配置:
c.NotebookApp.password = '你的哈希值'
当场是导入 notebook.auth
包时会遭遇报错,提示 ModuleNotFoundError: No module named 'notebook.auth'
。当寻遍了 notebook
包的所有地方,就会发现没有 auth
。
实际上,根据 官方文档 的解释,在 Jupyterlab 7.x 版本中,密码的配置方式已经发生了变化。除了使用推荐的
jupyter server password
的命令外,还可以使用以下命令来手动设置密码:
python -c "from jupyter_server.auth import passwd; print(passwd())"
即将 notebook
改为 jupyter_server
即可。
另外,JupyterLab 的密钥存储虽然用了 sha1 算法,但明文存储时是有加盐的,因此实际存储是
JupyterLab 7.x 中的密码算法不再是 sha1,而是换成了 argon2id,配置文件明文存储时形如:'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'
的模样,无法手算一个 sha1 值硬写配置文件。argon2:$argon2id$v=19$m=10240,t=10,p=8$BL9Kcwv0eMv+Hfq/K4uuCQ$Kwlq72XsHTvP4oNpcZF+/8Sk4RxHLXunOnkx7aKaJes
槽,MarsCode 竟然知道这些知识,自动帮我补完了这篇文章的大部分技术细节...