[FAQ] Jupyter Notebook 실행시 토큰을 입력하라고 나옵니다

[FAQ] Jupyter Notebook 실행시 토큰을 입력하라고 나옵니다

  • Q: Jupyter Notebook 실행시 토큰 혹은 패스워드를 입력하라고 나옵니다.
  • A: "jupyter notebook list" 명령하여 표시되는 토큰을 입력하거나 프로파일을 생성하여 패스워드를 설정합니다.

Jupyter Notebook 인증

다음과 같이 jupyter notebook 서버로 실행 (로컬에서 jupyter notebook을 실행하는 것이 아니라 서버로 실행하고 브라우저로 접속)하고,

$ jupyter notebook --ip=0.0.0.0 --port=8080 --no-browser

jupyter notebook 서버에 접속할 때, 아래와 같이 token 혹은 패스워드를 입력하라고 표시된다. 보안성을 높이기 위한 기능으로jupyter 4.3 (2016년 12월)에 토큰 인증(token authentication)은 이 추가되었다. 화면에 표시되는 내용을 살펴보면 토큰(token)을 입력하거나 패스워드 설정하라는 메시지를 볼 수 있다.

토큰 인증

다음과 같이 명령을 입력하여 표시되는 토큰(token)을 입력해 주면 된다.

$ jupyter notebook list
Currently running servers:
http://0.0.0.0:8080/?token=8bb77bd37304a54f770cb9f8b8374bdcd6a552284bd9b7ba :: /home/ubuntu/workspace

아래와 같은 URL을 사용할 수 도 있다.

http://your-server:8080/?token=8bb77bd37304a54f770cb9f8b8374bdcd6a552284bd9b7ba

1회만 입력하면 토큰이 만료되기 전까지 다시 물어보지 않는다.

패스워드 설정과 프로파일

또 다른 방법으로 jupyter Notebook 서버에 프로파일을 생성하고 자신이 원하는 패스워드를 설정하는 방법이 있다.

1. 프로파일 생성

$ jupyter notebook --generate-config

~/.jupyter 디렉토리가 생기고, 하위에 jupyter_notebook_config.py 파일이 생성된다.

2. 패스워드 생성

아래와 같이 ipython 실행하고, 패스워드 해시(hash) 생성한다.

$ ipython                                                                                                                                   
Python 3.4.3 (default, Sep 14 2016, 12:36:27) 
Type "copyright", "credits" or "license" for more information.

IPython 5.2.2 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: from IPython.lib import passwd

In [2]: passwd()
Enter password: 
Verify password: 
Out[2]: 'sha1:f0bf7a023f60:25920410f68d70c03175e3fec4619c497b84193f'

In [3]: ^D  #(^D를 입력하여 종료)                                                                                                              
Do you really want to exit ([y]/n)? y

3. jupyter_notebook_config.py 파일 수정

~/.jupyter/jupyter_notebook_config.py 파일에 아래 내용을 추가 한다.

c = get_config()
c.NotebookApp.ip = '0.0.0.0'
c.NotebookApp.open_browser = False
c.NotebookApp.port = 8080
c.NotebookApp.password = 'sha1:f0bf7a023f60:25920410f68d70c03175e3fec4619c497b84193'

4. jupyter notebook 실행

다음과 같이 jupyter notebook 을 실행한다.

$ jupyter notebook

jupyter_notebook_config.py 설정에 ip, port 등의 옵션을 설정하였으므로 "--ip=0.0.0.0 --port=8080 --no-browser" 옵션을 따로 지정하지 않아도 된다.

참고자료

댓글