Jupyter Notebook という便利なものがあるのでよく使っているんですが、CPU を使う処理をする際にローカル PC で動かすと他に何もできなくなるし、何よりファンの音がうるさい。そこでクラウドサーバーなどリモートサーバーで実行するんですが、デフォルトだと localhost からしかアクセスできないようになっています。かといって
jupyter notebook --ip=0.0.0.0
などとすると、今度はファイアウォールの設定をしたくなります。また、このままだと平文なのでアレです。Jupyter はいちおう SSL 通信できるようにもできるんですが、鍵を作ったり管理したりしないといけないので面倒です。そこで、ssh の port forwarding を使って手軽にセキュアに使えるようにします。
まず下記で localhost:8888 に繋げばリモートホストの 8888 にポートフォワードするようにします。
ssh -L 8888:localhost:8888 ubuntu@example.com
同時に ssh でログインできるので、そのままリモートホスト上で Jupyter Notebook を立ち上げます。このとき --ip
オプションは必要ないです。
jupyter notebook
これで、ローカル PC のブラウザで http://localhost:8888 に繋げばリモートホスト側の Jupyter Notebook にアクセスできるようになります。URL は http ですが、ssh port forwarding でトンネル掘ってるので実質暗号通信になってます。この方法を使えば、ssh で繋げるようになってさえいれば特別な設定なしで Jupyter Notebook をセキュアに使えます。