본문 바로가기
Engineer/프로그래밍관련

linux에 설치된 Jupyter notebook 원격 접속 설정하기

by _제이빈_ 2020. 3. 20.

본 포스트는 Window 10이 설치된 PC에서 

CentOS가 설치된 로컬서버의 Jupyter notebook을 용하기 위한 환경을 구축하는 법을 다룬다.

linux 서버에 Jupyter notebook 설치는 단독으로 해도 좋지만, 아나콘다를 설치하면 쉽다.

 

 

    주피터 노트북은 색션 마다 즉각적인 결과를 확인할 수 있어 개발 기초단계나, 복잡하지 않은 프로그램을 작성시 자주 사용된다. 이러한 주피터 노트북은 웹기반으로 하기 때문에 어디서든 서버에 접속해 작업을 할 수 있다는 장점이 있다. 이번 포스트는 주피터노트북을 로컬환경 외 PC등에서 접속할 수 있는 방법을 설명하고 있다. 자세한 설명 이전, 전체적인 순서는 다음과 같다.

 

  1. Jupyter notebook이 서버 내에 설치가 되어있다면, 프로파일을 만든다.

  2. notebook server가 수신할 ip address를 입력한다.

  3. 실행과 동시에 web-browser를 실행하지 않게 한다.

  4. 포트번호를 설정한다.

  5. 비밀번호 설정한다(토큰인증 대신).

  6. PC에서 원격 접속한다.

 

다소 복잡해 보일 수 있지만 차근차근 따라하면 쉽게 원격 개발환경을 설정할 수 있다.

 

 


 

1. Jupyter notebook를 서버 내에 설치한 후, 프로파일을 만든다.

 

아래의 명령어를 리눅스서버에서 선언한다.

 

$ jupyter notebook --generate-config

 

만약 jpyter notebook 명령어가 없다고 안내된다면, Jupyter notebook이 설치된 폴더를 환경변수로 추가하면 해결된다. 

명령어가 잘 먹었다면, /home/<username>/.jupyter 디렉토리에 jupyter_notebook_config.py 파일이 생성되어 있는 것을 확인할 수 있다.

아래그림은 생성된 파일을 열었을때 나타나는 내용이다.

파일을 열었다면, 아래 사항들을 따라  jupyter_notebook_config.py 를 수정하면 된다.

 


 

2. notebook server가 수신할 ip address를 입력한다.

 

##The ip address the notebook server will listen on.
#c.NotebookApp.ip = 'localhost'
c.NotebookApp.ip = '사용할 IP 주소'
# 예1) '192.168.XXX.XXX'
# 예2) '0.0.0.0'

 


 

3. 실행과 동시에 web-browser를 실행하지 않게 한다.

리눅스 내에서 브라우저가 켜지는 것을 방지하는 작업이다. CentOS의 경우 이를 설정하지 않으면 CLI (명령줄인터페이스) 창에 요상한 브라우저가 뜬다.

 

#c.NotebokkApp.open_browser = True
c.NotebokkApp.open_browser = False

 


 

4. 포트번호를 설정한다.

 

##The port the notebook server will listen on.
#c.NotebookApp.port = 8888
c.NotebookApp.port = XXXX

 

여기까지 기본적인 설정이다. 위 사항을 설정 후 PC 브라우저에서 IP와 포트를 입력[http://192.168.XXX.XXX:XXXX/]해 접속하면, 아래와 같이 token 혹은 패스워드를 입력하라고 표시된다(보안성을 높이기 위한 기능으로 jupyter 4.3 (2016년 12월)에 토큰 인증(token authentication)이 추가됨).

 


화면에 표시되는 내용을 살펴보면 토큰(token)을 입력하거나 패스워드 설정하라는 메시지를 볼 수 있다. 매번 복잡하게 생긴 토큰을 갖다 쓸수는 없으니, 비밀번호를 설정하면 용이하다.

 


 

5. 비밀번호 설정한다(토큰인증 대신).

 

서버 내에서 ipython 실행하고, 아래와 같은 명령어를 입력해 패스워드 해시(hash) 생성한다.

 

from IPython.lib import passwd
passwd()

 

>> Enter password: 라는 안내가 뜨면 자기가 사용할 패스워드 2번 입력(>> Verify password: )한다. 그러면 

>> 'sha1:f0bf7a023f60:25920410f68d70c03175e3fec4619c497b84193f'  

 

로 패스워드 해시를 얻을 수 있다. 해시를 복사한 뒤 ipython을 종료한다. 

 

^D


>> Do you really want to exit ([y]/n)? y

 

그리고 다시 ~/.jupyter/jupyter_notebook_config.py로 돌아가 아래 내용을 추가 한다.

 

c.NotebookApp.password = 'sha1:f0bf7a023f60:25920410f68d70c03175e3fec4619c497b84193f'

 

이제 설정이 모두 끝났으니, 원격으로 접속해 본다.

 


 

6. PC에서 원격 접속한다.

 

브라우저에 설정한 IP 및 포트번호를 입력하여 접속[http://192.168.XXX.XXX:XXXX/]하면 다음과 같이 Password를 입력하는 창이 뜬다.

 

 

비밀번호를 입력하고 Login하여 설정에 오류가 없는지 확인한다.

 

 

반응형

댓글