aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 48e289d269b5df65ef9de1617152d86556c4573e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
SSHFS
=====


About
-----

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.


How to use
----------

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 ask 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 OS-X, to unmount the filesystem:

    umount mountpoint


Installation
------------

First, download the latest SSHFS release from
https://github.com/libfuse/sshfs/releases. On Linux and BSD, you will
also need to have [libfuse](http://github.com/libfuse/libfuse)
installed. On OS-X, you need [OSXFUSE](https://osxfuse.github.io/)
instead. Finally, you need the
[glib](https://developer.gnome.org/glib/stable/) development package
(which should be available from your operating system's package
manager).

To build and install, we recommend to use
[Meson](http://mesonbuild.com/) (version 0.38 or newer) and
[Ninja](https://ninja-build.org).  After extracting the sshfs tarball,
create a (temporary) build directory and run Meson and Ninja:

    $ md build; cd build
    $ meson ..
    $ ninja
    $ sudo ninja install

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
    $ ninja                      # rebuild


Alternate Installation
----------------------

If you are not able to use Meson and Ninja, please report this to the
sshfs mailing list. Until the problem is resolved, you may fall back
to an in-source build using autotools:

    $ ./configure
    $ make
    $ sudo make install

Note that support for building with autotools may disappear at some
point, so if you depend on using autotools for some reason please let
the sshfs developers know!


    ./configure
    make
    sudo make install


Caveats
-------

Some SSH servers do not support atomically overwriting the destination
when renaming a file. In this case you will get an error when you
attempt to rename a file and the destination already exists. A
workaround is to first remove the destination file, and then do the
rename. SSHFS can do this automatically if you call it with `-o
workaround=rename`. However, in this case it is still possible that
someone (or something) recreates the destination file after SSHFS has
removed it, but before SSHFS had the time to rename the old file. In
this case, the rename will still fail.

    
Getting Help
------------

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.