Sometimes it can be pretty useful to access a remote system's filesystem from your own, and sometimes NFS isn't a great fit for the connectivity at hand.
It is, however, possible to use
sshfs to mount a remote filesystem on pretty much any box that you can SSH to - giving quite a bit of convenience without the need to make changes at the remote end.
This documentation details how to create an auto-mounting SSHFS mount
The first thing we need to know, is the path (on the remote end) that we intend to mount. Finding that may be as simple as SSHing over and running
On your client system, you need to install both
sudo apt-get install autofs sshfs
Then create a directory for your mounts to live in
We'll want the mounts to use our UID and GID, so check what they are
UID=`id -u` GID=`id -g`
Then, we want to append a line to the
echo "/home/$USER/mounts /etc/autofs.sshfs uid=$UID,gid=$GID,--timeout=60,--ghost" | sudo tee -a /etc/autofs.master
--timeout specifies how long a mount can be idle before it's unmounted, adjust as needed.
--ghost simple tells
autofs to create the mount directories even if the filesystem isn't currently mounted)
Next, we need to create the mapping file
echo "mac -fstype=fuse,rw,allow_other :sshfs\#email@example.com\:/Users/btasker" | sudo tee /etc/autofs.sshfs
This tells autofs:
- Create a subdir called
- When that subdir is accessed, ssh as
allow_othertells autofs should allow other users to access the Mac - we use this because the service runs the mount as root
- (Yes, I may have done all this to help avoid having to use the Mac keyboard)
: are special characters in
sshfs configuration, and so need to be escaped.
We're not quite there yet, though. The actual mounting operation gets run as
root, and so it's root that needs to be able to SSH onto the target host.
sudo -i ssh-keygen -b 4096 ssh-copy-id [user]@[targetbox] # e.g. firstname.lastname@example.org ssh [user]@[targetbox] # Verify that you get logged in
Finally, restart Autofs
systemctl restart autofs
And then verify that the mount works