直接重跑 jupyter notebook password 即可安全覆盖旧密码,因其自动定位默认配置目录、生成新哈希并写入正确json文件,无需手动编辑,避免路径、权限或配置层级错误。

直接重跑 jupyter notebook password 就能覆盖旧密码,这是最安全、最推荐的做法。其他方法(比如删配置文件、改 jupyter_notebook_config.py)容易因路径错、权限不足或配置层级混乱而失效。
为什么 jupyter notebook password 是首选?
这个命令会自动定位当前用户默认配置目录(通常是 ~/.jupyter/),生成新哈希并写入 jupyter_notebook_config.json 或 jupyter_server_config.json(取决于 Jupyter 版本),全程无需手动编辑文件。
常见误区:
- 以为删了
jupyter_notebook_config.py就能清掉密码——其实密码哈希存在 JSON 文件里,不是 PY 文件 - 在 root 用户下运行但没加
--allow-root,导致写入失败却无提示 - 用
jupyter lab password试图重置 Notebook 登录页——Lab 和 Notebook 共享同一套认证配置,但命令名不通用,应统一用notebook
执行前必须确认的三件事
否则命令看似成功,实际没生效:
- 运行命令的用户,对
~/.jupyter/目录有写权限(ls -ld ~/.jupyter查看) - 没在虚拟环境里漏装
jupyter包(which jupyter确认路径,jupyter --version验证可用) - 没同时存在多个配置目录(比如用过
JUPYTER_CONFIG_DIR环境变量),可通过jupyter --config-dir确认实际写入位置
输完密码后仍要求原密码?检查这些地方
说明新哈希没被加载,大概率是启动时用了错误配置或缓存了旧设置:
- 启动命令里显式指定了配置文件(如
--config=/tmp/my.conf),新密码没写进那个文件 - 服务没真正重启:用
ps aux | grep jupyter杀掉残留进程,再重新jupyter notebook - 浏览器缓存了旧登录页(特别是用过 token 登录后又切回密码模式),硬刷新(Ctrl+Shift+R)或换隐身窗口测试
- 如果你用的是 Jupyter Server(比如 JupyterLab 4+),密码实际存在
jupyter_server_config.json,而旧版 Notebook 可能读jupyter_notebook_config.json——新版统一用前者,但某些部署仍混用
实在不行就手动清理再重建
仅当上述都失败时才考虑,且必须按顺序操作:
- 先停掉所有 jupyter 进程(
pkill -f jupyter) - 备份并删除整个
~/.jupyter/目录(mv ~/.jupyter ~/.jupyter.bak) - 运行
jupyter notebook --generate-config重建基础配置 - 再跑
jupyter notebook password设置新密码 - 注意:此操作会丢失自定义端口、IP 绑定等设置,需后续手动补回
jupyter_notebook_config.py
真正容易被忽略的是配置路径和进程残留——很多人重设密码后没杀老进程,或者在 Docker 容器里改了宿主机配置却忘了进容器里同步,结果反复折腾。











