Macでsshfsを使ってローカルからリモートのファイルを触る

  • 219
    いいね
  • 1
    コメント

リモートサーバにsshでログインして作業をする機会は多々あるが、
ちょっとした作業をおこなうだけにも関わらず毎回毎回sshをするのは非常に面倒。

そこで、リモートのディレクトリをローカルにマウントし、
ローカルにいながらにしてリモートのファイルを触れるようになる方法を紹介する。

環境

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.9.4
BuildVersion:   13E28

FUSE for OSXのインストール

ディスクイメージからインストール

http://sourceforge.net/projects/osxfuse/ からosxfuseの最新版をダウンロードし、
ダウンロードしたosxfuse-[VERSION].dmgをダブルクリックしてインストールする。

インストール後、システム環境設定の一番下の欄にFUSE for OSXの項目が増えていることを確認する。

システム環境設定

Homebrewからインストール

brewコマンドでインストールすることもできる。

$ brew install osxfuse

ただし、Homebrewからインストールした場合、以下のコマンドが必要となる。

$ sudo /bin/cp -RfX /usr/local/opt/osxfuse/Library/Filesystems/osxfusefs.fs /Library/Filesystems
$ sudo chmod +s /Library/Filesystems/osxfusefs.fs/Support/load_osxfusefs

さもないと、下で紹介するコマンドを実行してマウントしようとすると、
the OSXFUSE file system is not available (-1)というようなエラーが出てしまう。

sshfsのインストール

パッケージからインストール

次のURLからsshfsの最新版をダウンロードし、
ダウンロードしたSSHFS-[VERSION].pkgをダブルクリックしてインストールする。

正しくインストールされているか確認する。

$ sshfs --version
SSHFS version 2.5 (OSXFUSE SSHFS 2.5.0)
OSXFUSE library version: FUSE 2.7.3 / OSXFUSE 2.7.4
no mount point

Homebrewからインストール

Homebrewでインストールすることもできる。

brew install sshfs

使用方法

マウント

$ mkdir mountpoint
$ sshfs [user]@[hostname]:[absolute_path_to_dir] mountpoint

これで、ローカルのmountpointディレクトリはリモートのabsolute_path_to_dirを指し示すようになり、
ローカルにいながらにしてリモートのファイルを触ることが出来る。

アンマウント

$ diskutil unmount mountpoint