LoginSignup
4
3

More than 5 years have passed since last update.

sshfs(+docker)を使ってリモートマシン上のコードをGUI系エディタでいじる

Last updated at Posted at 2018-10-10

はじめに

AWSやAzureで(お金さえあれば)潤沢なGPU環境を簡単に利用できるようになりましたが、リモートマシンゆえにGUIの利用に制限がかかります。
XForwardingなどがうまく動けばよいですが、重くて使い物にならないことも多いかと思います。

そこで本記事では、リモートマシン上にあるコードをローカルのGUI系エディタ(VSCodeなど)でいじる方法を紹介します。
本番実行はリモートマシン上で行う想定ですが、ローカルでも簡単なデバッグは行いたいので、dockerを使ってリモートとローカルの環境を揃えます(オプションです)。

代替手段

・XForwading
重い

・Remote VSCode
余計なポートを開ける必要があり、会社で使えない(´・ω・`)

主な流れ

  1. ローカルとリモートの両方でdockerコンテナに入る
  2. ローカルでsshfsし、リモートマシンのディレクトリをマウント
  3. ローカルでコーディング

docker

ローカルとリモートの両方でdockerコンテナに入ります。
docker runする際に、--privilegedオプションをつけてください。
これが無いと後述のsshfsでエラーが出ます。
https://github.com/s3fs-fuse/s3fs-fuse/issues/647

なお、dockerコンテナ内でVSCodeを利用する方法については以下の記事を参考にしてください。
https://qiita.com/kanosawa/items/0c83f8d8eaaa4a72e1cd

sshfs

ローカルでsshfsし、リモートマシンのディレクトリ(src)をローカルマシンのディレクトリ(dst)にマウントします。

sshfs [-o IdentityFile=keypath] username@remote_ip:src dst

例)

sshfs -o IdentityFile=~/key.pem ubuntu@12.345.678.901:/home/ubuntu/work ~/work

鍵認証不要なら[]部は不要です。

おわりに

以上の手順で、リモートマシン上にあるコードをローカルのGUI系エディタでいじることができるようになります。

これでTesla V100 8台を気軽にぶん回すこともできますね(24.5ドル/hなり)

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3