背景
ググってもこれといった記事がなかったので記事化しました。
某VPSサーバを契約しJupyterLabを使っています。
WindowsではWSLのSSHを利用してポートフォワーディングでブラウザ(localhost)からアクセスしていましたが、Chromebookを購入して同じことができないのかと、気になり、やってみました。
(ダイナミックフォワードではない方ですが、ダイナミックも多分できます)
方法
ステップ1:ChromeウェブストアからSecureShellを入れる
「Chromebook ssh」などでググると、crosh(Ctrl-Alt-t)を押してからsshと入力せよ、などの記事が散見されますが、できませんでした。
結果から言うと、Chromeの拡張機能を入れてやるようです。
https://chromium.googlesource.com/apps/libapps/+/HEAD/nassh/README.md
上記サイトのInstallからChromeウェブストアに飛んでインストールしてください。
ステップ2:SSH接続(確認)
インストールしたら、Google Chrome右上の拡張機能ボタンから、Secure Shellを押します。(ピン止めすると便利です)
接続ダイアログを押すと次の画面になります。
(インストール直後は勝手に次の画面になるのかも・・)
自由形式のテキスト
はUI上での表示名なので、なんでもいいです。
ユーザ名
、ホスト名
は、コマンドでSSHするときのuser@host
をそれぞれ入力します。
ポートを変えている人はSSH引数
のところから-p 22
などとします。
[ENTER]接続
のボタンから接続し、パスワード入力して接続できることを確認します。
(秘密鍵認証はID
のところで指定すればできるっぽいです。クライアントの公開鍵をサーバに登録するタイプの認証は、開発者にならないとできない模様)
ステップ3:ポートフォワーディングの設定を入れる
SSH引数
のところに、-L 8888:localhost:8888
などと追加して、[ENTER]接続
を押します。
次にChromeでlocalhost:8888
を指定して、JupyterLabに接続できれば完了です。
この-L
オプションは、リモートのポート8888
を、localhost
のポート8888
に対応付けてくれ。具体的にはリンクを張るイメージで、localhost:8888
にアクセスしたらリモートの8888
の内容を表示してくれ、という意味です。
私は、Windows環境では、sshコマンドに-N -f
などとオプションをつけていましたが、ここでつけるとエラーになる模様です。
結び
いかがでしょうか?(クソサイト風)
基本JupyterLab上でしかコーディングしない&JupyterLabをインターネットにさらす度胸がない非開発者なので、開発者モード使わない縛りでChromeOSからSSHポートフォワーディングしてみました。
Chromebook関連の記事は3年以上前だと古くて使えないことが多々あるので、ちょっとあれですね・・・
(まあ大方croshとかいうイケてない機能制限ターミナルが進化してくれればいいだけの話ではあります。)