What is a better way to deal with server disconnects of sshfs mounts?
You can run sshfs with the "reconnect" option. We use sshfs with PAM/automount to share server files for each workstation in our network. We use -o reconnect as parameter for sshfs, mostly because our users suspended their computers and on wake sshfs would not reconnect (or respond, or anything).
For example:
sshfs [email protected]:/home/mvaldez/REMOTE /home/mvaldez/RemoteDocs -o reconnect,idmap=user,password_stdin,dev,suid
Just a note, if the remote computer is really down, sshfs may become unresponsive for a long time.
This can be worked around by decreasing the timeout. Add the following to $HOME/.ssh/config
or /etc/ssh/ssh_config
:
ServerAliveInterval 15
ServerAliveCountMax 3
This results in a 45 seconds timeout.
I have a server that I use for storage and for some lack of space where I live, I keep it in another location. In order to bring the files into my network I use a raspberry pi that mount the files from the server using sshfs.
Recently I had to upgrade to raspbian jessie due to a power failure and realised that sshfs become seriously unstable. The folders would be properly mounted but after some time I would not be able to connect to them and the raspberry pi would freeze if I wanted to list the contents of the mounts.
What I tried was:
- used reconnect in the fstab
- used the ServerAliveInterval and ServerAliveCountMax in the .ssh/config file but to no avail.
- other solutions I read on most forums.
but no dice! Until I modified the fstab file as follows:
sshfs#user@server:/remote/folder /local/mount/dir fuse IdentityFile=sshkeyfile,Port=XXX,uid=1000,gid=1000,allow_other,_netdev,ServerAliveInterval=45,ServerAliveCountMax=2,reconnect,noatime,auto 0 0
And it works! No more disconnects! I looks like sshfs does not read the ssh config file for some reason and the keep alive signals were never sent.