如何禁用密码要求为朱庇特笔记本会议?

多年来,我一直使用以下命令发布木星笔记本电脑:

jupyter-notebook --port=7000 --no-browser --no-mathjax

当我试图在浏览器上打开 jupyter 时,它会要求我输入密码,尽管我以前从未设置过任何密码。 需要注意的是,如果我将端口设置为一个不同于 7000 (eg., the default 8888)的值,那么接口将毫无问题地打开

我在本地运行 jupyter,在以下设置中:

Python 3.5.2

安装了以下模块:

jupyter (1.0.0), jupyter-client (4.4.0), jupyter-console (5.0.0), jupyter-core (4.2.1), ipykernel (4.5.2), ipython (5.1.0), ipython-genutils (0.1.0), nbconvert (4.3.0), nbformat (4.2.0), notebook (4.3.0)

注意: 我没有木星配置文件

以下是来自服务器的一些输出行:

[I 19:16:24.358 NotebookApp] Serving notebooks from local directory: /Users/my_user_name
[I 19:16:24.358 NotebookApp] 0 active kernels
[I 19:16:24.358 NotebookApp] The Jupyter Notebook is running at: http://localhost:7000/?token=aa0dab6e2d85766f3e2e4f0f6633e4473db56a56c94cac76
[I 19:16:24.358 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

以下是我尝试在浏览器上打开它之后的消息(使用端口7000)

[I 19:21:56.848 NotebookApp] 302 GET /tree (::1) 8.46ms
[D 19:21:56.857 NotebookApp] Using contents: services/contents
[D 19:21:56.919 NotebookApp] Path base/images/favicon.ico served from /usr/local/lib/python3.5/site-packages/notebook/static/base/images/favicon.ico
[D 19:21:56.920 NotebookApp] Path components/jquery-ui/themes/smoothness/jquery-ui.min.css served from /usr/local/lib/python3.5/site-packages/notebook/static/components/jquery-ui/themes/smoothness/jquery-ui.min.css
[D 19:21:56.922 NotebookApp] Path components/jquery-typeahead/dist/jquery.typeahead.min.css served from /usr/local/lib/python3.5/site-packages/notebook/static/components/jquery-typeahead/dist/jquery.typeahead.min.css
[D 19:21:56.923 NotebookApp] Path style/style.min.css served from /usr/local/lib/python3.5/site-packages/notebook/static/style/style.min.css
[D 19:21:56.925 NotebookApp] Path auth/css/override.css served from /usr/local/lib/python3.5/site-packages/notebook/static/auth/css/override.css
[D 19:21:56.926 NotebookApp] Path components/es6-promise/promise.min.js served from /usr/local/lib/python3.5/site-packages/notebook/static/components/es6-promise/promise.min.js
[D 19:21:56.926 NotebookApp] Path components/requirejs/require.js served from /usr/local/lib/python3.5/site-packages/notebook/static/components/requirejs/require.js
[D 19:21:56.933 NotebookApp] Path base/images/logo.png served from /usr/local/lib/python3.5/site-packages/notebook/static/base/images/logo.png
[D 19:21:56.934 NotebookApp] 200 GET /login?next=%2Ftree (::1) 80.86ms
[D 19:21:57.001 NotebookApp] Path custom.css served from /usr/local/lib/python3.5/site-packages/notebook/static/custom/custom.css
[D 19:21:57.003 NotebookApp] 304 GET /custom/custom.css (::1) 3.11ms
[D 19:21:57.341 NotebookApp] Path auth/js/main.min.js served from /usr/local/lib/python3.5/site-packages/notebook/static/auth/js/main.min.js
[D 19:21:57.344 NotebookApp] 200 GET /static/auth/js/main.min.js?v=20161219191623 (::1) 3.57ms

此时,有一个来自 Jupyter 的页面要求我插入一个以前从未设置过的密码。

解决了!

笔记本模块(4.3.1)的最新更新解决了这个问题。

一旦 Jupyter 笔记本启动,用户会被提示在第一次连接时将 URL 粘贴到浏览器中:

Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://localhost:7000/?token=32be0f5ee74cfe521187bc479855ce8b9fbab9e8021701c9

这解决了问题!

131774 次浏览

The same issue occured on my machine since the last update of the jupyter-notebook package. After installing version

jupyter-notebook-4.3.0-1-any.pkg.tar.xz

it prompted me for a password I never set. Downgrading to

jupyter-notebook-4.2.3-1-any.pkg.tar.xz

worked for me keeping the system a productive environment. Of course this is just a fast patch.

I also wondered where the password was set since I don't have an explicit config file in my .jupyter-folder. Setting up my own with

password_required=False

made no difference.

Notebook 4.3.0 has enabled login security by default. The token to enter in the password field is printed in the output of the notebok server during startup (or can be included directly in the URL)

The Jupyter Notebook is running at: http://0.0.0.0:8888/?token=f3e7fa23fb7e347ad05914368b625416b7a95a674dc078f7

See http://jupyter-notebook.readthedocs.io/en/latest/security.html#server-security for more info, including disabling the feature.

However, this would not explain why you get the password prompt when running on one port but not on another

The following is very unsafe, but you can remove the password completely with:

jupyter notebook --ip='*' --NotebookApp.token='' --NotebookApp.password=''

Without --NotebookApp.password='', when connecting from a remote computer to a local Jupyter launched simply with:

jupyter notebook --ip='*'

it still asks for a password for security reasons, since users with access can run arbitrary Python code on the server machine!

Note that on my machine, running just:

jupyter notebook

already opens a logged-in window on my browser, and stdout contains:

    To access the notebook, open this file in a browser:
file:///home/ciro/.local/share/jupyter/runtime/nbserver-3286-open.html
Or copy and paste one of these URLs:
http://localhost:8888/?token=7c9265bf9df5f57cf5da88f410a71b097e2548ae375826b7
or http://127.0.0.1:8888/?token=7c9265bf9df5f57cf5da88f410a71b097e2548ae375826b7

so if your browser is not opening automatically, you can try one of those links, which seem to have a login token on them, and then investigate why your browser is not opening automatically.

Tested on Jupyter 4.4.x, Ubuntu 18.04.

If you are trying to run from docker without password just use CMD like bellow:

CMD ["jupyter", "notebook", "--no-browser","--NotebookApp.token=''","--NotebookApp.password=''"]

How to avoid "Invalid credentials" by disabling jupyter Notebook Password & Token

First open Anaconda Prompt

  1. Enter the command jupyter notebook --generate-config

enter image description here

  1. From jupyter directory ,edit the jupyter_notebook_config.py

made changes into the following command

 c.NotebookApp.token = ''
c.NotebookApp.password = u''
c.NotebookApp.open_browser = True
c.NotebookApp.ip = 'localhost'

Now launch the jupyter notebook from anaconda navigator definitely the problem will be resolved as soon..

For me, the solutions described above was not applicable in Docker.

The following solution works like a charm on Linux:

Details:

  • used image: tensorflow/tensorflow:latest-py3-jupyter
  • password I configured: 'password'
  • run Jupyter as a user (not root)

Steps to start Jupyter in Docker with your pre-defined password:

  1. export JUPYTER_TOKEN='password'
  2. docker run -it --rm -p 8888:8888 -u $(id -u ${USER}):$(id -g ${USER}) -e JUPYTER_TOKEN=$JUPYTER_TOKEN -v /home/<user>/jupyter:/tf/ tensorflow/tensorflow:latest-py3-jupyter
  3. open http://localhost:8888 and use 'password' as your password
  4. save password in ypur browser

For me, that is the easiest way to get rid of the annoying token authentication.

You can first create a jupyter config file with:

cd ~/.jupyter

jupyter notebook --generate-config Then set the c.NotebookApp.token parameter to an empty string in the configuration file created

c.NotebookApp.token = ''

As mentioned in comment, Setting to an empty string disables authentication altogether, which is NOT RECOMMENDED.

Use the command jupyter notebook password to open jupyter & it asks to enter a new password.

The hashed password is updated in the jupyter_notebook_config.json file.

I solved the token authentication by replacing the password inside jupyter_notebook_config.json by running jupyter notebook password on the command line:

(base) C:\WINDOWS\system32>jupyter notebook list
http://localhost:8888/ :: C:\Users\320089053
http://localhost:8889/ :: C:\Users\320089053


(base) C:\WINDOWS\system32>jupyter notebook list
Enter password:
Verify password:
[NotebookPasswordApp] Wrote hashed password to C:\Users\320089053\.jupyter\jupyter_notebook_config.json

This answer is just to summarize what others said and give my two cents on the token thing discussed in the other answers.

What happened to the OP is a password for Jupyter instances is set -- somewhere -- in his environment. (He either set it directly or indirectly, it doesn't matter...in my case, I'm pretty sure I intentionally set it back in the days and then forgot about it.) The situation is a jupyter notebook instance that can not be used because password is unknown/lost/forgot.

There are two ways to do it permanently:

  1. Change the password using Jupyter cli:

    $ jupyter notebook password
    

    I tried to set an empty password here but apparently Jupyter does not allow that, something is generated for you if you don't fill it.

  2. Edit your Jupyter config1. In particular, I wanted Jupyter to stop asking for a passwork/token:

    • I substituted the NotebookApp-token value I had in my jupyter_notebook_config.json for an empty string:
      $ cat ~/.jupyter/jupyter_notebook_config.json
      {
      "NotebookApp": {
      "token": ""
      }
      }
      
      
      

That's it. Now, whenever a new instance of jupyter notebook comes up you should NOT be asked for a password or token.

Set a default password using below command

jupyter notebook password

Restart your notebook and enter the same password in the Browser

If you are trying to run from docker, there are different ways how u can disable authentication

If it is a simple docker run , we can try like this

docker run  -p 8888:8888 jupyter/minimal-notebook:57f8546c0386 start-notebook.sh --NotebookApp.token=''

If we are building an image with jupyter/minimal-notebook as base image,

  1. Create a custom-start.sh file

jupyter notebook --allow-root --no-browser --ip=0.0.0.0 --port=8888 --NotebookApp.token='' --NotebookApp.password=''

  1. Add the below lines in docker file

COPY custom-start.sh /usr/local/bin/ RUN chmod +x /usr/local/bin/custom-start.sh CMD ["custom-start.sh"]

If it is a docker-compose file

version: '3.8'
services:
some_name:
ports: ['8888:8888']  # docker run -p option
image: jupyter/minimal-notebook:57f8546c0386
command: start-notebook.sh --NotebookApp.token=''

There is jupyter_notebook_config.json file that is more priority than jupyter_notebook_config.py file, so you need to edit this json file, to find this directory, use this command

jupyter notebook --generate-config

this will create jupyter_notebook_config.py and show the location of that file, which will be in the same directory as jupyter_notebook_config.json, open jupyter_notebook_config.json and set the password value to "", this works on my side

enter image description here

First open Anaconda Prompt, then enter the command

jupyter notebook --generate-config

In my case the file was stored in the following directory (the Jupyter Notebook Server configuration directory)

C:\Users\<username>\.jupyter

In this directory, edit the jupyter_notebook_config.py file to change the following configuration settings:

c.NotebookApp.token = ''
c.NotebookApp.password = u''
c.NotebookApp.open_browser = True
c.NotebookApp.ip = 'localhost'

Save the file, and then restart Jupyter Notebook Server to pick up the configuration change.