jupyter server 보안 설정하기

jupyter Notebook 서버를 올렸는 아무나 접근하게 하고 싶지 않을때 다음과 같이 설정한다.

jupyter notebook --generate-config
위 코드를 실행 시키면
/home/jupyter/.jupyter/jupyter_notebook_config.py 파일이 생긴다.
위 파일에서 아래와 같은 항목을 아래와 같이 설정한다.

c.NotebookApp.ip = '0.0.0.0'
위 코드는 외부 접속이 가능하게 허용하는 설정

c.NotebookApp.port = 8888
위 코드는 접속 포트 설정, 방화벽이나 기타 이유로 바꿔야 할시 위 값을 바꾸면 됨.

c.NotebookApp.open_browser = False
위 코드는 주피터를 실행할때 브라우저를 열지 않게 하는 설정
c.NotebookApp.notebook_dir = "/path/to/ipython"
위 코드는 주피터 작업 디렉토리를 설정
c.NotebookApp.password = u'password'
위 코드는 주피터 접속시 암호를 입력받게 하는 설정, 당연히 설정된 암호와 맞아야 ^^

c.NotebookApp.keyfile = '/home/jupyter/.ssh/mykey.key'
c.NotebookApp.certfile = '/home/jupyter/.ssh/mycert.pem'
위 두개 코드는 ssl 설정에서 나온 암호파일로 이 설정이 셋팅 되면
http://ip:8888이 아니고 https://ip:8888로 접속해야 한다.

openssl로 암호화 설정은 다음과 같이 수행
$openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mykey.key -out mycert.pem

위 명령을 배쉬 쉘에서 실행하면 365일 동안 쓸수 있는 인증서 생성