Jupyter Notebook服务器密码无效。

26

我遵循了这里的设置说明:http://jupyter-notebook.readthedocs.io/en/latest/public_server.html

在启动服务器后,每次尝试登录时都会拒绝我的密码。 我已验证了哈希值,并使用了notebook.auth中的passwd()函数作为sha1生成器。

最后,密码值设置在jupyter_notebook_config.py文件中。

我是否漏掉了什么? 我可以看到POST请求和其他内容,但它不会接受我设置的密码。

一些谷歌搜索迄今为止没有发现任何结果。我正在Linux Mint 17上使用Anaconda v1.5.1 distro。

谢谢


我遇到了这个错误,现在我找到了原因。 我使用jupyter笔记本密码设置了pwd,并设置了pwd, 然后我执行jupyter-lab 两者是不同的。 在我使用jupyter-lab密码设置pwd之后,它现在可以正常工作。 - user225549
11个回答

23

我能够设置密码并用它登录。 我试过运行jupyter notebook password但不成功,但是jupyter server password可以。


终于!你太棒了! - Rafael Guimaraes Siqueira
1
引导我发现这个问题的线索是启动时出现的以下信息:“password”已从NotebookApp移至ServerApp。此配置将传递给ServerApp。请确保在我们的下一个版本发布之前更新您的配置。 - Chappy Hickens
自上周以来,我一直在寻找这个答案。非常感谢! - Letsios Matthaios
这节省了我几个小时的时间。谢谢。 - James Wong
完美的,谢谢。 - Sophie

9
您可以通过运行命令jupyter notebook --generate-config来生成一个配置文件,从而对所有选项进行配置。

这将生成一个包含所有配置说明和注释的文件~/.jupyter/jupyter_notebook_config.py

  • 运行vi jupyter_notebook_config.py以访问并编辑该文件

在此文件中,您可以取消注释:

## Allow password to be changed at login for the notebook server.
#
#  While loggin in with a token, the notebook server UI will give the opportunity
#  to the user to enter a new password at the same time that will replace the
#  token login mechanism.
#
#  This can be set to false to prevent changing password from the UI/API.
c.NotebookApp.allow_password_change = True

并使用以下方法设置起始或无令牌

## Token used for authenticating first-time connections to the server.
#
#  When no password is enabled, the default is to generate a new, random token.
#
#  Setting to an empty string disables authentication altogether, which is NOT
#  RECOMMENDED.
c.NotebookApp.token = ''

对于一个简单的单密码:在 jupyter_notebook_config.py 文件中:

# my notebooks settings
c = get_config()
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 5000

# setting up the password
from IPython.lib import passwd
password = passwd("your_secret_password")
c.NotebookApp.password = password

请参见文档中的此处:https:


7
  1. 生成配置文件:jupyter notebook --generate-config

  2. 生成密码:jupyter notebook password 并输入密码两次。这将生成一个 jupyter_notebook_config.json 文件或更改当前配置路径中的文件。

  3. 查找 jupyter_notebook_config.py 文件的路径(通常在 path/.jupyter 中):

    • jupyter --path
  4. 取消注释并向配置文件 jupyter_notebook_config.py 添加 JSON 配置文件:

    • c.JupyterApp.config_file_name = 'jupyter_notebook_config.json'

我觉得这会有帮助,但生成密码的第二步却显示“没有此文件或目录”<pwd>/password。 - ashley
你好!很有趣。你使用的笔记本版本是什么?"password"应该是一个保留关键字。你的命令试图提供一个名为"password"的单个文件。 - Javier Carrizo Brass

3

虽然不是您正在寻找的答案,但对于排除其他问题很有用。

$ jupyter notebook --port 5000 --no-browser --ip='*' --NotebookApp.token='' --NotebookApp.password=''

这将会出现以下警告,请注意风险。

[W 09:04:50.273 NotebookApp] 警告:笔记本服务器正在监听所有IP地址,并且未使用加密。这不是推荐的做法。

[W 09:04:50.274 NotebookApp] 警告:笔记本服务器正在监听所有IP地址并且未使用身份验证。这是极其不安全的,不推荐使用。


2
尝试清除浏览器的Cookie和缓存!关闭Jupyter页面,找到与“localhost:****”相对应的Cookie并清除它们。
我曾经遇到过Jupyter密码登录的同样问题:如果我输入正确的密码,登录页面就会刷新并保持不变(空白);但是如果我输入错误的密码,它将提示密码错误。
后来,我发现清除旧的Cookies解决了这个问题。

1
如果您使用的是单用户版本的Jupyter,您无需启用登录;
如果您使用的是多用户版本之一的JupyterHub(其中之一是最简单的),我建议您应该使用LDAP身份验证模块,您可以参考这篇文章了解如何使用LDAP身份验证:ldapauthenticator 最后,您可能还需要启用Kerberos授权,您可以参考这篇文章:Kerberos

1
我遇到了同样的问题。尝试在与jupyter_notebook_config.py相同的目录中运行笔记本服务器。这解决了我的问题。

1

我知道这是一个较旧的帖子,但最近在DigitalOcean上设置笔记本服务器时,发布了我最近使用的内容。

  1. 运行jupyter notebook --generate-config,将在~/.jupyter中生成jupyter_notebook_config.py文件。
  2. 在iPython shell - ipython中运行下面的代码,将生成密码哈希和盐。
from notebook.auth import passwd
passwd('your password goes here')

接下来,在jupyter_notebook_config.py文件中,将哈希值添加到c.NotebookApp.password = ''。同时,将c.NotebookApp.password_required更改为True
当远程访问笔记本时,使用密码<server_ip>:8888即可登录。

0

尽管这个问题很老,但我仍然会分享我的解决方案,以帮助下一个遇到同样问题的人。 似乎在使用密码时,jupyter笔记本会将端口从8888切换到8889。 一旦我导航到http://localhost:8889,我的密码就被接受了。


0

我已经从jupyter_notebook_config.py中注释掉了密码行。

{
  "NotebookApp": {
    "nbserver_extensions": {
      "jupyter_nbextensions_configurator": true
    },
    /* "password": "sha1:11a35c353b76:23365664049ac6918bc149b6044b990d7d23b080" */
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接