Edited at

分析サーバーでjupyter notebookを起動してローカルからアクセス


導入

タイトルの通り、かねてよりサーバーでjupyterを起動してローカルからアクセスしたいと思っていましたが、Qiitaの記事を参考にしてもうまくいかず、悶々としていました。

ですが、ちょうど今しがたできるようになったので忘れないためにもかいておこうと思い投稿しました。

追記(2019/06/06):

jupyterのバージョンが1.0.0にアップデートされていたので

それに合わせてこの記事も編集しました。


目的

踏み台サーバー("humidai")を経由して分析サーバー("bunseki")に入り、

分析サーバーでjupyterを起動したのちにローカルからアクセスすること


環境

python: 3.7.3

OS: linux

jupyter 1.0.0


手順


0. インストール

まずは分析サーバーでjupyterをインストールします。

$ pip install jupyter


1. jupyterのパスワードの設定

分析サーバーで以下を行います。

$ ipython

In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password:
Verify password:
Out[3]: 'sha1:...' # これをコピーしておく


2. コンフィグファイルの作成

$ cd ~

$ mkdir .jupiter
$ cd .jupyter
$ vim jupyter_notebook_config.py

jupyter_notebook_config.pyには以下のように記述します。


jupyter_notebook_config.py

c = get_config()

c.NotebookApp.ip='0.0.0.0' # 任意のipアドレスからアクセス可能, jupyter==1.0.0ではこうしないと動かなかった
c.NotebookApp.password = 'sha1:...' # コピーしておいた文字列をペースト
c.NotebookApp.open_browser=False # ブラウザは自動で開かない
c.NotebookApp.port=9000 # サーバーのportを適当に設定しておく



3. ローカルポートフォワード

一旦サーバーからログアウトします。

ローカルから、port番号を指定して分析サーバーにssh接続します。

$ ssh -L <localのport番号>:localhost:<分析サーバーのport番号> bunseki

※多段SSHの設定がまだの方はこちらを参照してください。


4. Jupyterの起動

分析サーバーの任意の場所でjupyterを起動します。

$ jupyter notebook


5. ローカルからアクセス

任意のブラウザから、以下のURLにアクセスします。

には、先ほど指定したlocalのport番号を用います。

http://localhost:<localのport番号>

jupyterが開けたら自分で設定したパスワードを入力して完了です!

お疲れ様でした。

jupyterを終了させたい場合はCtr-Cで。