【问题标题】:How to remove password for Jupyter Notebooks and set token again如何删除 Jupyter Notebooks 的密码并再次设置令牌
【发布时间】:2018-01-12 16:54:36
【问题描述】:
我需要为 Pycharm 这样做。
这是我无法撤消的步骤。
-
我添加了密码用于身份验证:
$ jupyter 笔记本密码
-
然后我使用下面的命令在 jupyter_notebook_config.py 中注释所有代码
$ jupyter notebook --generate-config
-
然后我删除了在 jupyter_notebook_config.json 中生成的散列密码,现在看起来像这样
{
“笔记本应用程序”:{
“密码”: ””
}
}
-
然后我在 jupyter_notebook_config.py 文件中做了以下更改
c.NotebookApp.password = ''
c.NotebookApp.token = ''
-
现在,当我启动 Jupyter notebook 时,没有生成令牌,也没有密码。
Pycharm git:(master) ✗ jupyter notebook
[I 21:53:35.158 NotebookApp] 从本地目录提供笔记本:/Users/...
[I 21:53:35.158 NotebookApp] 0 个活动内核
[I 21:53:35.158 NotebookApp] Jupyter Notebook 运行于:
[我 21:53:35.158 NotebookApp] http://localhost:8888/?token=%3Cgenerated%3E
首次连接时,将此 URL 复制/粘贴到浏览器中,
使用令牌登录:
http://localhost:8888/?token=%3Cgenerated%3E
现在,我该如何让它保持原样,或者如何取回令牌??
PS - 我什至尝试过 jupyter notebook list,但还是会出现相同的 URL。另外,我是在 Mac 上做的,所以请相应地提出建议。
【问题讨论】:
标签:
python
pycharm
ipython
jupyter-notebook
jupyter
【解决方案1】:
嗯,我的配置看起来不一样。
只需删除此文件,它将默认生成令牌
$ cat ~/.jupyter/jupyter_notebook_config.json
{
"NotebookApp": {
"password": "sha1:d0a89f391169:9ca771c3518f845438693b938b39703ce1104eaf"
}
【解决方案2】:
在 shell 中运行:
ipython
from IPython.lib import passwd
passwd()
输入两次密码并复制“sha1:12345”代码。
之后,编辑 jupyter 配置文件:
vi ./jupyter/jupyter_notebook_config.py
...并更改密码。
c.NotebookApp.password='sha1:12345'
粘贴您的“sha”代码并运行 jupyter notebook。
【解决方案3】:
我有一种情况,我想要基于令牌的身份验证(如果您不指定密码,则默认设置),但我一直在浏览器中获取密码表单。 jupyter notebook list 显示的是一个空令牌。
我确定~/.jupyter/jupyter_notebook_config.py 中没有密码条目,并删除了~/.jupyter/jupyter_notebook_config.json 文件(在jupyter notebook password 运行时创建),但在重新启动服务后我仍然收到密码表单。
似乎最终解决问题的是在jupyter_notebook_config.py 中输入一个空白密码并重新启动服务。之后,jupyter notebook list 开始显示自动生成的令牌,并且在输出 Jupyter URL 时,该令牌显示在启动日志中。
一旦自动生成的令牌开始显示,如果您想指定令牌,请按照@gschizas 的描述进行操作。
似乎很奇怪,需要在配置中添加一个空白密码条目才能恢复令牌身份验证——好像过去设置的密码会阻止 jupyter 恢复到其“默认情况下的令牌身份验证”行为。
【解决方案4】:
你不应该把<generated> 直接放在那里。你应该放一些生成的token,比如f45cf5d6803b81bcd41bcfbf70130293bcf7a773feabe827。
要自己生成密码,请运行以下命令:
-
python3 -c 'import os;print(os.urandom(24).hex())'(在 Linux / macOS 上)
或
-
py -c "import os;print(os.urandom(24).hex())"(在 Windows 上)
【解决方案5】:
尝试使用 .config("spark.submit.deployMode", "client")