The following service mounts a remote filesystem to local path /mnt/myfs
at boot time using systemd
and sshfs
with public key auth.
[sudo] apt install sshfs
- Prepare a local folder for the mount point:
[sudo] mkdir /mnt/myfs
- Create a file
/lib/systemd/system/mnt-myfs.mount
(for recent Ubuntu-based distros) with the following contents replacing{{ ... }}
placeholders.
If you change the local mount point (Where=...
), make sure you rename the mount file accordingly!
[Unit]
Description=Mount remote fs with sshfs
[Install]
WantedBy=multi-user.target
[Mount]
What={{ remote-user }}@{{ remote-server }}:/
Where=/mnt/myfs
Type=fuse.sshfs
Options=_netdev,allow_other,IdentityFile={{ path-to-ssh-private-key }},reconnect,ServerAliveInterval=30,ServerAliveCountMax=5,x-systemd.automount,uid=1000,gid=1000
TimeoutSec=60
[sudo] systemctl daemon-reload
[sudo] systemctl enable mnt-myfs.mount
[sudo] systemctl start mnt-myfs.mount
You can add ,Cipher=arcfour
to the end of Options=
if you're using this to mount a filesystem on the Raspberry Pi. Note that this would use a weaker cipher for the SSH connection.
SSHFS is a rock solid alternative to clunky WebDAV or NFS or Samba. Although it comes with significant overhead (FUSE, encryption), for local gigabit ethernet mounts, it does a really good job.