読者です 読者をやめる 読者になる 読者になる

書き置き。

ほぼ勉強の記録みたいなもんです。

Mac OS X (10.7) Lion で 簡単にsshfsマウントする方法

MacからCentOSDebian,Ubuntussh アクセスできるサーバーをマウントする方法。 マウントしてしまえばFinderからはローカルにあるディレクトリと同じようにファイル操作ができるし、 サーバー上にあるファイルをEclipseから編集することもできる(※1)。

開発を始めるたびにターミナルからコマンドを叩くのは間違えてしまうこともあるので、 アイコンをダブルクリックするだけでマウントできるようにしておきたい。

会社に置きっぱなしのデスクトップマシンだと、.bash_profileに書いてしまうという選択肢もあるだろうが 自分が使っているのはMacBook Air で毎日持ち歩いているため、家では自宅サーバーを、会社では今担当しているプロジェクト用のサーバーをマウントしたい(場合により別なサーバーを参照することもある)環境なため、必要なときに必要なところにだけ接続するようにしている。

Mac OS X (10.7) にしてから、MacFuse公式(?) Google Docs にあるパッケージをDLしてインストールしても そのままでは動かなくなってしまったので、操作手順をまとめておく。

http://blog.philippklaus.de/2011/04/fix-sshfs-with-macfuse-on-mac-os-x-10-6-7-snow-leopard/ こちらの記事を参考にした。


this macfuse version このリンクから macfuse-core-10.5-2.1.9.dmg をダウンロード。 マウント後、MacFUSE Core.pkg をダブルクリックしてインストーラーの指示に従って MacFuseをインストールする

sshfs のバイナリファイルをsvnチェックアウト 保存はお好きなところへ。

$ svn co http://macfuse.googlecode.com/svn/trunk/filesystems/sshfs/binary sshfs-binaries 
$ cp sshfs-binaries/sshfs-static-leopard ~/bin/sshfs-static-leopard 
$ chmod 744 ~/bin/sshfs-static-leopard

URKここまでやると、ターミナルからコマンドを叩いてsshfsマウントできる

# 先にマウントポイントを作成しておく 
$ mkdir ~mnt/example 
# マウント 
$ sshfs maki@example.com:/home/maki ~/mnt/example

マウントできるとこのようなエラーが出るが、特に問題はないみたい。

sshfs: cannot find sshnodelay.so 
warning: ssh nodelay workaround disabled

マウントしたいときにコマンドを叩けばこれでマウントできるようにはなったが、もう一工夫。

Automator.appを起動する。OS標準搭載のアプリで、Applicationフォルダに入っているので Spotlightから探すのも良し、Lion であればLaunchpad から起動しても良い。 automator-2

起動すると"書類の種類"を聞かれるので、ワークフロー を選択する。 ライブラリ > ユーティリティー に シェルスクリプトを実行 があるので左側のエリアにドラッグアンドドロップ。 追加されたら、先程ターミナルで叩いたsshfsのコマンドをそのままペーストする。 保存するときにのフォーマットをアプリケーションに指定して自分のわかりやすい位置に保存する。自分はデスクトップに保存した。

これで保存したアプリケーションをダブルクリックするだけでマウントできるようになった。 デフォルトでAutomatorのアイコンになるので、お好みのアイコンに変更するとこんな感じ。 Desktop

アイコンはここのを使わせてもらっている kawaii babies icons by ~kittenbella on deviantART

アイコンを変更する方法は tipshare.info の記事が参考になる。 Macのデスクトップにあるweblocファイルのアイコンを変更 | tipshare.info

ダブルクリックするだけで"簡単に"マウントするためには、sshを公開鍵認証(パスフレーズなし)でログインできるようにしておくのがポイントになる。

記事で説明するために接続先を example.com としているが、実際には .ssh/config に設定を書いてサーバーのアドレスやポート、鍵ファイルを指定しなくても接続できるようにしている。こうしておくことで、サーバーのIPアドレスなどが変更になっても .ssh/config を書き換えるだけで、sshやsshfsコマンドはそれまでどおりで接続することができる。

※1. ネットワーク的にローカルIPでアクセスできようともVPN越しのマウントでは帯域不足なのか、Eclipseから編集するのはもっさりどころかカクカクで全く作業にならなかった。