Sometimes it is be nice to mount a path from a remote file system as if it was local. Setting up NFS or Samba may be a lot of hassle, and may require root access on one or both of the boxes. Enter FUSE and sshfs.

FUSE makes it possible to implement a filesystem in a userspace program. Lots of such programs exists, making it possible to access web sites, blogs, your android, google drive, your google mail and lots more as if it was local file systems - all without root. There is an incomplete list on sourceforge.

For quick access of a remote file system, there is sshfs. It’s very simple to use:

## Install sshfs
$ sudo pacman -S sshfs ||
    sudo apt-get install sshfs ||
    sudo yum install sshfs ||
sudo opkg -i sshfs ||
sudo zypper install sshfs ||
    sudo my_fancy_package_manager install sshfs

## create a mount-dir and mount
$ mkdir
$ sshfs

## access those files
$ ls
$ mplayer $(find -name *.mp3)

## unmount
$ fusermount -u

Of course sshfs doesn’t fit all needs:

  • Performance: the mplayer command above didn’t work out to well for me (with too slow bandwidth out of that house, too many files and directories in that home directory on that box, etc … and finally the file names contained spaces).
  • Permissions: This is most useful when you have typical “user applications” that needs access to files on the home directory. You’d have to ssh in as root to get full access to the remote file system, and only your local user on the local box will have access to the files:

      $ sudo ls ~/
      ls: cannot access /home/tobias/ Permission denied
  • Stability and persistency: You would typically use this for a one-off job, if you require a mount that can come up automatically on boot and persist network problems, etc, then sshfs is probably not the right tool.
  • sshfs may not always be available, i.e. it does not exist in the official SailfishOS repositories.

The official web pages of sshfs is also found on sourceforge.