Mac: ssh接続先をsshfsとosxfuseでマウントする

Parallels Desktop for Macを使っていると、今度はそこで動かしているUbuntu VMのディレクトリにホスト側のMacからアクセスしたくなってきました。

参考: SSH接続で接続先のファイルをFinderで使えるように! – よしなしブログ

ネットで調べると、多くの記事でosxfuseとsshfsを導入することでできるとあります。


Home - FUSE for macOSより

シェルでマウントするだけでよくて、MacのFinderにマウントする必要がなければsshfsだけでよいのかなと思ったのですが、実際にはosxfuseも必要でした。

今更ですが、ここで使われているらしいFUSEという技術はかなり強力みたいですね。

インストール方法

Homebrewが使えるなら以下を実行するだけで完了です。

brew cask install osxfuse
brew install sshfs

Homebrewがなくても、上のサイトでそれぞれのpkgファイルをダウンロードしてダブルクリックすればインストールできます。

マウント方法

既にsshで鍵を使って接続可能になっていれば、以下の書式でコマンドを実行すればマウントできます。マウントディレクトリは事前にmkdirで作っておきます。

# 書式
sshfs ユーザー名@サーバー名:/ディレクトリ/ マウントディレクトリ -p 22

たとえば以下のように実行します。自分の場合はシェルスクリプトにまとめました。

sshfs hachi8833@paraubu:/home/hachi8833/ ~/paraubu -p 22

以下のようにデスクトップにボリュームがマウントされれば成功です。これでシェルでもマウント先にアクセスできるようになります。

なお、osxfuseをインストールしていない場合、Finderやオープンダイアログではこのマウントディレクトリは表示されません。

自動マウントは?

sshfsのマウントを起動時に自動化しようかとも思いましたが、Parallels Desktop for MacのUbuntu VMが起動し終わらないうちにマウントを試みてもうまくいかない可能性があります。

仕方なく、今のところはマウントのスクリプトをシェルで手動実行しています。何かうまい方法があればいいのですが。

アンマウント方法

Linuxの場合はfusermountコマンドを使うのだそうです。Linuxでは通常ユーザーはumountを実行できないためです。

しかしmacOSの場合は、公式のWikiでumountを使えという指示になっています。

# 書式
umount マウントディレクトリ

上でマウントしたディレクトリは以下のようになります。

umount paraubu

関連記事

Mac: Parallels Desktop for MacでUbuntu Server LTS環境を構築する

デザインも頼めるシステム開発会社をお探しならBPS株式会社までどうぞ 開発エンジニア積極採用中です! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

hachi8833

Twitter: @hachi8833、GitHub: @hachi8833 コボラー、ITコンサル、ローカライズ業界、Rails開発を経てTechRachoの編集・記事作成を担当。 これまでにRuby on Rails チュートリアル第2版の監修および半分程度を翻訳、Railsガイドの初期翻訳ではほぼすべてを翻訳。その後も折に触れて更新翻訳中。 かと思うと、正規表現の粋を尽くした日本語エラーチェックサービス enno.jpを運営。 実は最近Go言語が好きで、Goで書かれたRubyライクなGoby言語のメンテナーでもある。 仕事に関係ないすっとこブログ「あけてくれ」は2000年頃から多少の中断をはさんで継続、現在はnote.muに移転。

hachi8833の書いた記事

BPSアドベントカレンダー

週刊Railsウォッチ