Mounting Remote Filesystems Using SSH and Fuse


OpenSSH

Image via Wikipedia

Paul Figgiani, the Senior Audio Engineer at IT Conversations, sent me a link to a program called ExpanDrive, that allows you to mount any remote directory to which you have SSH access on your Mac. The cost: $39.

ExpanDrive is based on MacFUSE, an extension which extends OS X's native file handling capabilities to programs in user space (that is, outside of the kernel). I first heard about this when Scott and I interviewed Amit Singh on IT Conversations. Amit is probably the world's leading expert on OS X internals and the creator of MacFUSE.

Because MacFUSE allows filesystem extensions to live in user space, you can write a regular program that looks like a file system. That's what ExtenDrive is. Another example is the Cryptomfs which creates an encrypted directory that can be mounted and then read in plain text. I've used the ntfs-3g filesystem to read and write NTFS files to a USB drive. It also works great for accessing Bootcamp partitions.

If you're geeky, there's a free Fuse FS called sshfs that does essentially the same thing but without all the bells and whistles. You can use the OS X automounting capability to automount sshfs volumes.

Having something like this--where a remote directory just shows up in your file system is nice for backups. Mount a directory on a remote machine and then use rsync and a cronjob to perform automated backup over the 'Net. All for free.

Update: CIO has a feature on dynamic languages where ExpanDrive (written in Python) was the major factor in turning someone from C to Python for a project involving ZFS.