sshfsはUNIX風OSでssh(sftp)を使ってリモートホストのファイルをマウントできるプログラムだ。
インストール
sshfsはdebianの場合は以下でインストールできる。
apt-get install sshfs
fuseの設定
sshfsはfuseを使っているので、fuseグループにsshfsを実行するユーザを追加しておく必要がある。以下のコマンドの<username>はユーザ名に読み替える。
gpasswd -a <username> fuse
ログインし直して、fuseグループに追加されていることを確認しよう。
id
出力にfuseが含まれていれば成功している。
uid=1000(xmisao) gid=1000(xmisao) groups=1000(xmisao),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),116(fuse)
sshfsの使い方
以下のコマンドで<host>にssh接続した際のホームディレクトリ以下が、<mountpoiut>にマウントされる。
sshfs <host>: <mountpoiut>
もしホームディレクトリ以外を指定したければ、:の後にリモートホストのディレクトリを指定する。ルートディレクトリを指定すれば、全ファイルが操作できる。
sshfs <host>:<dir> <mountpoiut>
sshでリモートホストにアクセスして開発を行う場合があるが、多数のホストに接続していると、それぞれのホストでvim等の環境を設定することが億劫になることもある。そういう時は、sshfsを使ってリモートホストのファイルをマウントし、ローカルファイルと同様に直接編集してしまえば良い。
加えてsshfsが強力なのは、~/.ssh_configで定義したsshのホストの設定がそのまま活用できることだ。sshコマンドで接続できるホストなら、ProxyCommandを使った多段接続であろうと、すべてのホストがsshfsでマウントできる。複数のホストにまたがって、ファイルの移動やコピーを行う際にはとても便利だ。
sshfsでマウントしたディレクトリのアンマウントは、fusermountで行うと良いようだ。
fusermount -u <mountpoint>
なお私は試していないが、WindowsではFUSEのWindows版であるDokanを使ったDokan-SSHFSがあり、MacではMacFUSEを使ってsshfsを動作させることができるようだ。