リモートサーバにsshでログインして作業をする機会は多々あるが、
ちょっとした作業をおこなうだけにも関わらず毎回毎回sshをするのは非常に面倒。
そこで、リモートのディレクトリをローカルにマウントし、
ローカルにいながらにしてリモートのファイルを触れるようになる方法を紹介する。
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.9.4
BuildVersion: 13E28
FUSE for macOS(FUSE for OSX)のインストール
バージョン3.4.0からFUSE for macOSという名前になったようです。
ディスクイメージからインストール
http://sourceforge.net/projects/osxfuse/ からosxfuseの最新版をダウンロードし、
ダウンロードした osxfuse-[VERSION].dmg
をダブルクリックしてインストールする。
(2019-03-06 @aosho235 さんの指摘を受けて追記)
sourceforgeには2.8.3までしかホストされていないようなので、 https://github.com/osxfuse/osxfuse/releases から 最新バージョンの.dmgをダウンロード・インストールします。
インストール後、システム環境設定の一番下の欄にFUSE for OSXの項目が増えていることを確認します(下の画像はFUSE for OSXをインストールしたときの例ですが、FUSE for macOSをインストールした場合も同様です)。
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)
というようなエラーが出てしまう。
(2019-03-06 @xtaniguchimasaya さんの指摘を受けて追記)
osxfuseはhomebrew/caskに移動したようです。
$ brew tap homebrew/cask
$ brew cask install osxfuse
インストール後の確認方法は.dmgをインストールした場合と同様です。
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
(2019-03-06 @do7be さんの指摘を受けて追記)
アンマウントできないときはforceオプションが必要になります。
$ diskutil unmount force mountpoint