I’m used to access distant machine’s file systems via ssh. My favorite environment, KDE, makes things easy thanks to the support of
sftp:// URLs via a kio_slave. MacOSX is not as friendly and don’t have any built-in mechanism of that kind.
First, download the latest MacFuse dmg and install it. FYI, the version I’ve got was MacFuse 2.0.3,2.
From a terminal, rename the binary:
$ sudo mv ./sshfs-static-leopard ./sshfs
Then allow the binary to be executed and place it in the system:
$ sudo chmod +x sshfs $ sudo install sshfs /usr/local/bin
From now you can test sshfs mounting with the following command:
$ sshfs email@example.com:/folder/ /Network/distant-folder -p 22
I personally had a problem here: sshfs complained about a missing library. I fixed this by downloading the required file from the MacFusion project and copying it beside the sshfs binary:
$ sudo wget http://www.macfusionapp.org/trac/export/86/trunk/SSHFS/sshnodelay.so $ sudo mv ./sshnodelay.so /usr/local/bin/ $ sudo chmod +x /usr/local/bin/sshnodelay.so
If this fail you can also check:
- that the current user you’re logged with has access to the distant server with the
- or that the local mount point exists (you can create it with
mkdir -p /Network/distant-folder);
- and finally, you can add the
-o debugoption to the sshfs command above to get additional clues.
Now we will automate the mounting of sshfs at every start.
At this point I recommend you to register the
root user of your MacOSX system to the distant server:
$ sudo cat ~/.ssh/id_rsa.pub | sudo ssh -p 22 firstname.lastname@example.org "cat >> ~/.ssh/authorized_keys"
If doesn’t exists, we have to create the
/etc/fstab to edit it:
$ sudo touch /etc/fstab $ sudo vi /etc/fstab
And add the following directives:
dummy:email@example.com:/folder/ /Network/distant-folder sshfs allow_other,auto_cache,reconnect,port=22,follow_symlinks,volname="Distant folder" 0 0
As you can see I’ve added lots of options to accommodate my uses. You can get more informations about sshfs options through traditional help pages:
$ sshfs --help
MacOSX’s automount daemon will look for a script called
mount_sshfs at start. Actually it doesn’t exists on your system, but sshfs command line is compatible with what automount expect. So creating a symbolic link will do the trick:
$ sudo ln -s /usr/local/bin/sshfs /sbin/mount_sshfs
Finally, we can tell automount to acknowledge all our modifications:
$ sudo automount -vc