sshfsでlocalhostをマウントする

Underconstruction by Taiyo@hatena - Fuseを使って手抜きで書いた手順に追加。

1. 材料

macfuse - Google CodedownloadからMacFUSE Core Installer PackageとSSH File System for MacFUSEをダウンロード。

2. インストール

MacFUSE Core Installer Packageをインストールする。
SSH File Systemのdmgからsshfs.appを取り出す。

3. MacFuse Coreのインストール

パッケージメーカーなので普通にインストール。
再起動が必要。

4. sshfsを起動する

open filesystem
起動時にマウントするsshを指定するダイアログボックスが表示される。この後、sshの設定によってパスワードを求められたりする。
mounted ssh from localhost
マウントすると以下の状態。
sshfsは現在のユーザのssh接続を用いるが、現れるダイアログへの入力はプロンプトへ直接入力される。


The authenticity of host '[hostname]' can't be established.
RSA key fingerprint is xx:xx:....
Are you sure you want to continue connecting (yes/no)?
イマドキのサーバだと初めて接続するときにこんなプロンプトが出てくるはずだが、sshfsではsshfs passwordというダイアログが表示される。ここでyesを入力するとプロンプトにyesを入力したのと同じ結果になり、パスワードの入力に進める。
つなげない?。と思ったらまずターミナルでつないでみる、ってのが常道だけど、known hostへ追加するだけだってことがわかってるときは一枚目のダイアログにyesを入力してみよう。
接続のためのインターフェイスはパスワード入力しか用意されていない。そのため、rsaキーやknown listへの登録を求められてもsshfs.appでは接続に至るフローを完了できない。
一度、マウント先のsshへ接続してパスワード入力だけで済むようにしておく必要がある。

まとめ

今目の前にあるコンピュータの別のユーザのホームディレクトリをマウントして何が楽しいのか?と思われるかもしれないけど、keychainをコピーしたり一般ユーザから管理者アカウントに保存したファイルを読みにいったりできる。
もちろん真っ当な用途(管理しているサーバでの作業を行う)にはとても便利だ。サーバに入ってやることって、実はほとんどファイル操作だったりするでしょ。そんなことないって人もhistory見てみよう。lsとかcpとかmvとかchownとかが半分位を占めてるんじゃないかな?GUIで操作できるファイルシステムにマウントすると、少なくともlsの手間はなくなるね。
ローカルのファイルシステムになるのでターミナルでの操作が必要になったときでもサーバのプアな環境ではなく、リッチなユーザーランドで作業ができるし、複数の管理サーバを同じユーザランドで扱えるのもいい。


scp hoge.txt who@210.xx.xx.xx:/home/hoge/xxx
上記のコマンドって他のサーバだから入力補完できないんだけど、ローカルホストなら/Volumes/210.xx.xx.xx/[tabstop]で補完できる。面倒なscpがいらないのもイイ*1

*1:ゲイトウェイの向こう側だけで作業するなら必要なんだけど、それでも相当手間は減る。