Jupyter Labへリモートアクセスする
背景
Jupyter Labは、初期設定のままだと、ローカル端末での使用を想定したものになっている。
リモートサーバー上のJupyter Labにリモートからアクセスするには、別途設定が必要となる。
1. Jupyter Labをインストールする
Project Jupyter | Installing Jupyterに従う。
リモートサーバーにsshで入り、コマンドラインにて、
pip install jupyterlab
を実行する。
インストール完了後、同じコマンドラインにて、
jupyter-lab
を実行すると、Jupyter Labを起動できるのだが、
以下の作業を実行しないと、Jupyter Labに入れない。
2. リモートアクセスを可能にするためのJupyter Labの設定を行う
2-1. Jupyter Labにパスワードを設定する
リモートサーバーのコマンドラインにて、
ipython
を実行する。その後、
from jupyter_server.auth import passwd; passwd()
を実行することで、Jupyter Labに入る際のパスワードを設定する。
設定すると、暗号化したパスワード ('argon2:$ ... ') が出力されるので、メモ帳等にメモしておく。
2-2. jupyter configを用いた設定を行う
リモートサーバーのコマンドラインにて、
jupyter-lab --generate-config
を実行すると、ホームディレクトリに設定ファイル ~/.jupyter/jupyter_notebook_config.py が生成される。
これをテキストエディタ(emacs, viなど) で開き、以下の項目のコメントアウト (#) を外した上で編集する。
c.ServerApp.allow_remote_access = True c.ServerApp.ip = 'localhost' c.ServerApp.open_browser = False #リモートサーバーでブラウザが開かないようにする設定 c.ServerApp.password = '(上でメモした暗号化パスワード)' c.ServerApp.port = 9999
3. Jupyter Labへリモートアクセスする
一度リモートサーバーからexitし、再度sshで入る。その際、
ssh (ユーザー名)@(リモートサーバー名) -L 9999:localhost:9999
とし、リモートサーバーの9999ポートに接続する。
コマンドラインにて、
jupyter-lab
を実行すると、Jupyter Labが起動。
[I yyyy-mm-dd hh:mm:ss ServerApp] Jupyter Server 1.17.1 is running at: [I yyyy-mm-dd hh:mm:ss ServerApp] http://localhost:9999/lab [I yyyy-mm-dd hh:mm:ss ServerApp] or http://127.0.0.1:9999/lab [I yyyy-mm-dd hh:mm:ss ServerApp] サーバを停止し全てのカーネルをシャットダウンするには Control-C を使って下さい(確認をスキップするには2回)。
のような出力が出たことを確認し、
ローカルPCのブラウザで http://localhost:9999/lab 、または http://127.0.0.1:9999/lab にアクセスする。
先ほど設定したパスワードを入力すると、ブラウザ上でJupyter Labを使えるようになる。
参考
UbuntuにSSH接続してJupyter Labを使う方法 | サイエンス備忘録を参考にした。
内容はほとんど同じだが、一部仕様が異なる部分があったため、改めて記事としてまとめさせていただいた。
(具体的には、IPython.lib の中に passwd が存在せず、importできなかった)