This repository is a fork of the official repository, which has been orphaned by the current maintainer. I (Greg Shuflin) have been using SSHFS for a long time, and thought I might try my hand at maintaining it myself in the absence of other maintainers.
Besides being an existing user of SSHFS I have no existing affiliation with the sshfs maintainers, and have not previously looked at SSHFS's code. I am currently trying to familiarize myself with the codebase as it currently exists, and clarify code where I can for to benefit myself and any potential other contributors. I make no promises about my own reliability as a maintainer, but people should feel free to create Github issues in this repo or submit code or documentation patches.
I'm currently in the process of porting SSHFS to Rust. See the rust branch.
SSHFS allows you to mount a remote filesystem using SFTP. Most SSH servers support and enable this SFTP access by default, so SSHFS is very simple to use - there's nothing to do on the server-side.
SSHFS is shipped by all major Linux distributions and has been in production use across a wide range of systems for many years. However, at present SSHFS does not have any active, regular contributors, and there are a number of known issues (see the bugtracker). The current maintainer continues to apply pull requests and makes regular releases, but unfortunately has no capacity to do any development beyond addressing high-impact issues. When reporting bugs, please understand that unless you are including a pull request or are reporting a critical issue, you will probably not get a response.
Once sshfs is installed (see next section) running it is very simple:
sshfs [user@]hostname:[directory] mountpoint
It is recommended to run SSHFS as regular user (not as root). For this to work the mountpoint must be owned by the user. If username is omitted SSHFS will use the local username. If the directory is omitted, SSHFS will mount the (remote) home directory. If you need to enter a password sshfs will ask for it (actually it just runs ssh which asks for the password if needed).
Also many ssh options can be specified (see the manual pages for
sftp(1) and ssh_config(5)), including the remote port number
(-oport=PORT
)
To unmount the filesystem:
fusermount -u mountpoint
On BSD and macOS, to unmount the filesystem:
umount mountpoint
First, download the latest SSHFS release from https://github.com/libfuse/sshfs/releases. You also need libfuse 3.1.0 or newer (or a similar library that provides a libfuse3 compatible interface for your operating system). Finally, you need the Glib library with development headers (which should be available from your operating system's package manager).
To build and install, we recommend to use Meson (version 0.38 or newer) and Ninja. After extracting the sshfs tarball, create a (temporary) build directory and run Meson:
$ mkdir build; cd build $ meson ..
Normally, the default build options will work fine. If you nevertheless want to adjust them, you can do so with the mesonconf command:
$ mesonconf # list options $ mesonconf -D strip=true # set an option
To build, test and install SSHFS, you then use Ninja (running the tests requires the py.test Python module):
$ ninja $ python3 -m pytest test/ # optional, but recommended $ sudo ninja install
If you need help, please ask on the <fuse-sshfs@lists.sourceforge.net> mailing list (subscribe at https://lists.sourceforge.net/lists/listinfo/fuse-sshfs).
Please report any bugs on the GitHub issue tracker at https://github.com/libfuse/libfuse/issues.