概要
組織のネットワークを利用している場合は外部から接続できる方が珍しいですよね.
遠隔操作ツールは脆弱性が指摘されていたりするし,やっぱりsshしたいけど直接はできない状況はあると思います.
研究室サーバからデータは持ち出せないけど,外部でもいじりたい.
更にはjupyterなんかも使いたいし...そんなあなたへ.
研究室サーバをSSH経由で自宅からjupyterいじる
研究室サーバからさくらVPSへSSHポートフォワーディング
とりあえず研究室から研究室サーバへ接続して,さくらサーバへSSHポートフォワーディングしましょう.
-
jupyterで使用するポート番号(他ユーザとかぶらないように変更):8080
-
ssh -f -N -R
- -f:バックグラウンド実行
- -N:なにもコマンドを実行しない
- -R:ややこしいがssh元(研究室サーバ)からのポートフォワードを受け流す設定.受信設定.
-
nohupコマンド
- sshが途切れてもバックグラウンドでプロセスを立ち上げておくコマンド
- いらなくなったらkillコマンドでプロセスを殺す
MyMacbook:~ username$ ssh user@mylabo_address
Last login: Mon Aug 26 14:55:14 2019 from mypc_address
[user@mylabo ~]$ ssh -f -N -R 8080:localhost:8080 user@sakura_address
[user@mylabo ~]$ nohup jupyter-lab --port 10080 >> ~/jupyter.log 2>&1 &
[user@mylabo ~]$ exit
ログアウト
Connection to mylabo_address closed.
自宅PCからさくらVPSへSSHポートフォワーディング
自宅からさくらサーバへSSHポートフォワーディングしましょう.
- ssh -L
- -L:-Rの逆で,ポートフォワードを送りつける設定.送信設定.
MyMacbook:~ username$ ssh -L 8080:localhost:8080 user@sakura_address
自宅からjupyterを使う
localhost:8080へアクセス
だけど研究室サーバからさくらVPSへSSHが切れたらダメじゃん!
全くそのとおりです.
このままだとネットワークの安定性が担保されず,「家に帰って使えない」ってことに実際なります.
これでは悲しいことになるのでSSHが途切れないように工夫しましょう!
研究室サーバからさくらVPSへ自動再接続SSHポートフォワーディング
切断されたsshの自動再接続をしてくれるツールでautosshというのがあります.
CUDAサーバにautosshを導入する or スクリプトを書いて再接続することをおすすめします.
- autossh
- -M:autosshで設定する番号.指定したポートに
ssh -N -L 50000:127.0.0.1:50000 -R 50000:127.0.0.1:50001
を施す - 仕様上-Mオプションはやっておく必要があるので適当に
- -M:autosshで設定する番号.指定したポートに
MyMacbook:~ username$ ssh user@mylabo_address
Last login: Mon Aug 26 14:55:14 2019 from mypc_address
[user@mylabo ~]$ autossh -f -N -M 50000 -R 8080:localhost:8080 user@sakura_address
[user@mylabo ~]$ nohup jupyter-lab --port 10080 >> ~/jupyter.log 2>&1 &
[user@mylabo ~]$ exit
ログアウト
Connection to mylabo_address closed.
これであなたも夢のどこでも研究ライフ!!
今回が初投稿でした
内容が微妙だったので一度削除し付け足しました