ポート転送を利用して,クライアントのブラウザ(Windows 10 Pro の Chrome で検証しています)から,スパコンITO のログインノードで起動した,Jupyter Notebook(JupyterLab も可能)に接続する方法を紹介します.これによりスパコン上での計算結果をそのまま解析図化できるようになり,大変便利です.クライアントでは MobaXterm を利用します.
この方法はスパコンでの利用に限らず,ポート転送を利用して,クライアントのブラウザからサーバー上で起動した Jupyter に接続する方法として,一般性のあるものです.こちらの資料を参考にさせて頂きました.
事前の準備:SSHエージェントの有効化
MoberXterm の Settings -> Configuration -> SSH
をクリックします.一番下にある SSH agents
の Use internal SSH agent "MobAgent"
にチェックを入れ,その下のボックスの右にある 十字マーク
をクリックし,秘密鍵を(拡張子ppk)追加して,OKボタン
をクリックします.
加えて,タイムアウトで SSH が切れるのを抑制するため,MobaXterm の Settings -> Configuration -> SSH
において,SSH keepalive
にチェックを入れておくとよいでしょう.
これらの作業は一度だけ必要です.
手順
ログインノードで Jupyter を起動
スパコンのログインノードで Jupyter Notebook をブラウザ無し(--no-browser
)で起動します.
$ jupyter notebook --ip=127.0.0.1 --port=8888 --no-browser
これにより以下のような表示が最後の方に現れます.この部分を後ほどクライアントのブラウザのURLにコピーペーストします.
http://127.0.0.1:8888/?token=...
JupyterLabの場合も同様に起動します.
$ jupyter lab --ip=127.0.0.1 --port=8888 --no-browser
ローカルポート転送で,Jupyter へのアクセス経路を構築
MobaXterm のタブ横の +
をクリックして,新しいターミナルを開きます.これはローカルターミナルと呼ばれるものです.このローカルターミナルで以下を実行します.ただし,m00000a
はユーザアカウントです.
ssh -o ProxyCommand='ssh -W %h:%p %r@ito.cc.kyushu-u.ac.jp' ito.cc.kyushu-u.ac.jp -l m00000a -L 8888:localhost:8888
しばらく待つと,スパコンのターミナルが現れますので,それまで待ちます.
クライアントのブラウザで先のURLにアクセス
ログインノードで Jupyter を起動した際に現れた URL(http://127.0.0.1:8888/?token=...
)をクライアントのブラウザの URL にペーストしてアクセスします.これで,クライアントのブラウザ内で Jupyter が現れます.
注意: MobaXterm で URL をコピーする際は,マウスで URL を選択するだけです.Ctrl-C ではありません.