sshfsを利用して自分の得意なエディタ(VSCode)でリモートサーバにあるファイルを編集する方法

開発環境がリモートサーバにあると、VSCodeなどのエディタで思うように開けなかったりすると思います。

今回紹介するsshfsを利用することで、リモートサーバでプログラムが実行されており、開発はローカルのVSCodeで開発を進めていき、保存したタイミングでリモートサーバのファイルも更新されるということができるようになります。

sshfsとは

リモートサーバのデータをローカル環境にマウントすることができます。

通信プロトコルとしてSSHプロトコルを使っているのが特徴です。

やり方

FUSE for OSXをインストール

こちらからパッケージを選択し、インストールを行ってください。

homebrewでもインストールができますが、homebrew経由でインストールすると途中でエラーを吐いてしまうので、パッケージからインストールするほうが楽です。

sshfsをインストール

こちらから最新のパッケージをダウンロードし、インストールを行ってください。

これをインストールすることで、sshfsコマンドを利用することができます。

確認

上記2つをインストールしたら、sshfsコマンドが利用できるか確認します。

$ sshfs --version
SSHFS version 2.4 (OSXFUSE SSHFS 2.4.1)
OSXFUSE 3.8.2
FUSE library version: 2.9.7
fuse: no mount point

sshfsとOSXFUSEのバージョンが確認できたらOKです。

利用方法

マウント方法

$ sshfs [username]@[domain]:/path_to_dir/ /mount_dir

path_to_dirは、リモートサーバ内でマウント対象のディレクトを指します。

mount_dirは、ローカルのマウントしたいフォルダを指します。

最初にmkdirでマウントディレクトを作っておくといいかと思います。

アンマウント方法

$ diskutil unmount /mount_dir

mount_dirはローカルのマウントしたディレクトを指します。

補足

今回は、エディタをVSCodeと書いておりますが、他のエディタでも同じことを行う事ができます。

  • Sublime
  • Atom
  • JetBrains

上記のようなエディタもsshfsを用いることで、リモート環境のファイルをローカルのエディタで開けるようになります。

まとめ

これで、自分のよく使っているエディタ(僕の場合だとVSCode)で開発ができるようになります。

ssh接続のため、ファイルの更新もリアルタイムで行うことができるので、ストレスなく開発ができると思います。