[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" 옵션을 따로 지정하지 않아도 된다.
참고자료¶
- http://jupyter-notebook.readthedocs.io/en/latest/security.html Security in the Jupyter notebook server
댓글
Comments powered by Disqus