379 lines
12 KiB
Groff
379 lines
12 KiB
Groff
.\" Man page generated from reStructuredText.
|
|
.
|
|
.TH SSHFS 1 "" "" "User Commands"
|
|
.SH NAME
|
|
SSHFS \- filesystem client based on SSH
|
|
.
|
|
.nr rst2man-indent-level 0
|
|
.
|
|
.de1 rstReportMargin
|
|
\\$1 \\n[an-margin]
|
|
level \\n[rst2man-indent-level]
|
|
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
-
|
|
\\n[rst2man-indent0]
|
|
\\n[rst2man-indent1]
|
|
\\n[rst2man-indent2]
|
|
..
|
|
.de1 INDENT
|
|
.\" .rstReportMargin pre:
|
|
. RS \\$1
|
|
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
|
|
. nr rst2man-indent-level +1
|
|
.\" .rstReportMargin post:
|
|
..
|
|
.de UNINDENT
|
|
. RE
|
|
.\" indent \\n[an-margin]
|
|
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
.nr rst2man-indent-level -1
|
|
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
|
..
|
|
.SH SYNOPSIS
|
|
.sp
|
|
To mount a filesystem:
|
|
.INDENT 0.0
|
|
.INDENT 3.5
|
|
.sp
|
|
.nf
|
|
.ft C
|
|
sshfs [user@]host:[dir] mountpoint [options]
|
|
.ft P
|
|
.fi
|
|
.UNINDENT
|
|
.UNINDENT
|
|
.sp
|
|
If \fIhost\fP is a numeric IPv6 address, it needs to be enclosed in square
|
|
brackets.
|
|
.sp
|
|
To unmount it:
|
|
.INDENT 0.0
|
|
.INDENT 3.5
|
|
.sp
|
|
.nf
|
|
.ft C
|
|
fusermount3 \-u mountpoint # Linux
|
|
umount mountpoint # OS X, FreeBSD
|
|
.ft P
|
|
.fi
|
|
.UNINDENT
|
|
.UNINDENT
|
|
.SH DESCRIPTION
|
|
.sp
|
|
SSHFS allows you to mount a remote filesystem using SSH (more
|
|
precisely, the SFTP subsystem). Most SSH servers support and enable
|
|
this SFTP access by default, so SSHFS is very simple to use \- there\(aqs
|
|
nothing to do on the server\-side.
|
|
.sp
|
|
SSHFS uses FUSE (Filesystem in Userspace) and should work on any
|
|
operating system that provides a FUSE implementation. Currently,
|
|
this includes Linux, FreeBSD and Mac OS X.
|
|
.sp
|
|
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).
|
|
.SH OPTIONS
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \-o opt,[opt...]
|
|
mount options, see below for details. A a variety of SSH options can
|
|
be given here as well, see the manual pages for \fIsftp(1)\fP and
|
|
\fIssh_config(5)\fP\&.
|
|
.UNINDENT
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \-h\fP,\fB \-\-help
|
|
print help and exit.
|
|
.TP
|
|
.B \-V\fP,\fB \-\-version
|
|
print version information and exit.
|
|
.TP
|
|
.B \-d\fP,\fB \-\-debug
|
|
print debugging information.
|
|
.TP
|
|
.BI \-p \ PORT
|
|
equivalent to \(aq\-o port=PORT\(aq
|
|
.TP
|
|
.B \-f
|
|
do not daemonize, stay in foreground.
|
|
.TP
|
|
.B \-s
|
|
Single threaded operation.
|
|
.TP
|
|
.B \-C
|
|
equivalent to \(aq\-o compression=yes\(aq
|
|
.TP
|
|
.BI \-F \ ssh_configfile
|
|
specifies alternative ssh configuration file
|
|
.TP
|
|
.B \-1
|
|
equivalent to \(aq\-o ssh_protocol=1\(aq
|
|
.TP
|
|
.BI \-o \ reconnect
|
|
automatically reconnect to server if connection is
|
|
interrupted. Attempts to access files that were opened before the
|
|
reconnection will give errors and need to be re\-opened.
|
|
.TP
|
|
.BI \-o \ delay_connect
|
|
Don\(aqt immediately connect to server, wait until mountpoint is first
|
|
accessed.
|
|
.TP
|
|
.BI \-o \ sshfs_sync
|
|
synchronous writes. This will slow things down, but may be useful
|
|
in some situations.
|
|
.TP
|
|
.BI \-o \ no_readahead
|
|
Only read exactly the data that was requested, instead of
|
|
speculatively reading more to anticipate the next read request.
|
|
.TP
|
|
.BI \-o \ sync_readdir
|
|
synchronous readdir. This will slow things down, but may be useful
|
|
in some situations.
|
|
.UNINDENT
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \-o workaround=LIST
|
|
Enable the specified workaround. See the \fICaveats\fP section below
|
|
for some additional information. Possible values are:
|
|
.INDENT 7.0
|
|
.TP
|
|
.B rename
|
|
Emulate overwriting an existing file by deleting and
|
|
renaming.
|
|
.TP
|
|
.B renamexdev
|
|
Make rename fail with EXDEV instead of the default EPERM
|
|
to allow moving files across remote filesystems.
|
|
.TP
|
|
.B truncate
|
|
Work around servers that don\(aqt support truncate by
|
|
coping the whole file, truncating it locally, and sending it
|
|
back.
|
|
.TP
|
|
.B fstat
|
|
Work around broken servers that don\(aqt support \fIfstat()\fP by
|
|
using \fIstat\fP instead.
|
|
.TP
|
|
.B buflimit
|
|
Work around OpenSSH "buffer fillup" bug.
|
|
.TP
|
|
.B createmode
|
|
Work around broken servers that produce an error when passing a
|
|
non\-zero mode to create, by always passing a mode of 0.
|
|
.UNINDENT
|
|
.TP
|
|
.B \-o idmap=TYPE
|
|
How to map remote UID/GIDs to local values. Possible values are:
|
|
.INDENT 7.0
|
|
.TP
|
|
.B none
|
|
no translation of the ID space (default).
|
|
.TP
|
|
.B user
|
|
map the UID/GID of the remote user to UID/GID of the
|
|
mounting user.
|
|
.TP
|
|
.B file
|
|
translate UIDs/GIDs based upon the contents of \fI\-\-uidfile\fP
|
|
and \fI\-\-gidfile\fP\&.
|
|
.UNINDENT
|
|
.TP
|
|
.B \-o uidfile=FILE
|
|
file containing \fBusername:uid\fP mappings for \fI\-o idmap=file\fP
|
|
.TP
|
|
.B \-o gidfile=FILE
|
|
file containing \fBgroupname:gid\fP mappings for \fI\-o idmap=file\fP
|
|
.TP
|
|
.B \-o nomap=TYPE
|
|
with idmap=file, how to handle missing mappings:
|
|
.INDENT 7.0
|
|
.TP
|
|
.B ignore
|
|
don\(aqt do any re\-mapping
|
|
.TP
|
|
.B error
|
|
return an error (default)
|
|
.UNINDENT
|
|
.TP
|
|
.B \-o ssh_command=CMD
|
|
execute CMD instead of \(aqssh\(aq
|
|
.TP
|
|
.B \-o ssh_protocol=N
|
|
ssh protocol to use (default: 2)
|
|
.TP
|
|
.B \-o sftp_server=SERV
|
|
path to sftp server or subsystem (default: sftp)
|
|
.TP
|
|
.B \-o directport=PORT
|
|
directly connect to PORT bypassing ssh
|
|
.UNINDENT
|
|
.INDENT 0.0
|
|
.TP
|
|
.BI \-o \ slave
|
|
communicate over stdin and stdout bypassing network
|
|
.TP
|
|
.BI \-o \ disable_hardlink
|
|
With this option set, attempts to call \fIlink(2)\fP will fail with
|
|
error code ENOSYS.
|
|
.TP
|
|
.BI \-o \ transform_symlinks
|
|
transform absolute symlinks on remote side to relative
|
|
symlinks. This means that if e.g. on the server side
|
|
\fB/foo/bar/com\fP is a symlink to \fB/foo/blub\fP, SSHFS will
|
|
transform the link target to \fB\&../blub\fP on the client side.
|
|
.TP
|
|
.BI \-o \ follow_symlinks
|
|
follow symlinks on the server, i.e. present them as regular
|
|
files on the client. If a symlink is dangling (i.e, the target does
|
|
not exist) the behavior depends on the remote server \- the entry
|
|
may appear as a symlink on the client, or it may appear as a
|
|
regular file that cannot be accessed.
|
|
.TP
|
|
.BI \-o \ no_check_root
|
|
don\(aqt check for existence of \(aqdir\(aq on server
|
|
.TP
|
|
.BI \-o \ password_stdin
|
|
read password from stdin (only for pam_mount!)
|
|
.UNINDENT
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \-o dir_cache=BOOL
|
|
Enables (\fIyes\fP) or disables (\fIno\fP) the SSHFS directory cache. The
|
|
directory cache holds the names of directory entries. Enabling it
|
|
allows \fIreaddir(3)\fP system calls to be processed without network
|
|
access.
|
|
.TP
|
|
.B \-o dcache_max_size=N
|
|
sets the maximum size of the directory cache.
|
|
.TP
|
|
.B \-o dcache_timeout=N
|
|
sets timeout for directory cache in seconds.
|
|
.TP
|
|
.B \-o dcache_{stat,link,dir}_timeout=N
|
|
sets separate timeout for {attributes, symlinks, names} in the
|
|
directory cache.
|
|
.TP
|
|
.B \-o dcache_clean_interval=N
|
|
sets the interval for automatic cleaning of the directory cache.
|
|
.TP
|
|
.B \-o dcache_min_clean_interval=N
|
|
sets the interval for forced cleaning of the directory cache
|
|
when full.
|
|
.UNINDENT
|
|
.INDENT 0.0
|
|
.TP
|
|
.BI \-o \ direct_io
|
|
This option disables the use of page cache (file content cache) in
|
|
the kernel for this filesystem.
|
|
This has several affects:
|
|
1. Each read() or write() system call will initiate one or more read or
|
|
.IP "System Message: ERROR/3 (../sshfs.rst:, line 210)"
|
|
Unexpected indentation.
|
|
.INDENT 7.0
|
|
.INDENT 3.5
|
|
write operations, data will not be cached in the kernel.
|
|
.UNINDENT
|
|
.UNINDENT
|
|
.IP "System Message: WARNING/2 (../sshfs.rst:, line 211)"
|
|
Block quote ends without a blank line; unexpected unindent.
|
|
.INDENT 7.0
|
|
.IP 2. 3
|
|
The return value of the read() and write() system calls will correspond
|
|
to the return values of the read and write operations. This is useful
|
|
for example if the file size is not known in advance (before reading it).
|
|
e.g. /proc filesystem
|
|
.UNINDENT
|
|
.UNINDENT
|
|
.sp
|
|
In addition, SSHFS accepts several options common to all FUSE file
|
|
systems. These are described in the \fImount.fuse\fP manpage (look
|
|
for "general", "libfuse specific", and "high\-level API" options).
|
|
.SH CAVEATS / WORKAROUNDS
|
|
.SS Hardlinks
|
|
.sp
|
|
If the SSH server supports the \fIhardlinks\fP extension, SSHFS will allow
|
|
you to create hardlinks. However, hardlinks will always appear as
|
|
individual files when seen through an SSHFS mount, i.e. they will
|
|
appear to have different inodes and an \fIst_nlink\fP value of 1.
|
|
.SS Rename
|
|
.sp
|
|
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 \fI\-o
|
|
workaround=rename\fP\&. 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.
|
|
.SS Permission denied when moving files across remote filesystems
|
|
.sp
|
|
Most SFTP servers return only a generic "failure" when failing to rename
|
|
across filesystem boundaries (EXDEV). sshfs normally converts this generic
|
|
failure to a permission denied error (EPERM). If the option \fB\-o
|
|
workaround=renamexdev\fP is given, generic failures will be considered EXDEV
|
|
errors which will make programs like \fImv(1)\fP attempt to actually move the
|
|
file after the failed rename.
|
|
.SS SSHFS hangs for no apparent reason
|
|
.sp
|
|
In some cases, attempts to access the SSHFS mountpoint may freeze if
|
|
no filesystem activity has occured for some time. This is typically
|
|
caused by the SSH connection being dropped because of inactivity
|
|
without SSHFS being informed about that. As a workaround, you can try
|
|
to mount with \fB\-o ServerAliveInterval=15\fP\&. This will force the SSH
|
|
connection to stay alive even if you have no activity.
|
|
.SS SSHFS hangs after the connection was interrupted
|
|
.sp
|
|
By default, network operations in SSHFS run without timeouts, mirroring the
|
|
default behavior of SSH itself. As a consequence, if the connection to the
|
|
remote host is interrupted (e.g. because a network cable was removed),
|
|
operations on files or directories under the mountpoint will block until the
|
|
connection is either restored or closed altogether (e.g. manually).
|
|
Applications that try to access such files or directories will generally appear
|
|
to "freeze" when this happens.
|
|
.sp
|
|
If it is acceptable to discard data being read or written, a quick workaround
|
|
is to kill the responsible \fBsshfs\fP process, which will make any blocking
|
|
operations on the mounted filesystem error out and thereby "unfreeze" the
|
|
relevant applications. Note that force unmounting with \fBfusermount \-zu\fP, on
|
|
the other hand, does not help in this case and will leave read/write operations
|
|
in the blocking state.
|
|
.sp
|
|
For a more automatic solution, one can use the \fB\-o ServerAliveInterval=15\fP
|
|
option mentioned above, which will drop the connection after not receiving a
|
|
response for 3 * 15 = 45 seconds from the remote host. By also supplying \fB\-o
|
|
reconnect\fP, one can ensure that the connection is re\-established as soon as
|
|
possible afterwards. As before, this will naturally lead to loss of data that
|
|
was in the process of being read or written at the time when the connection was
|
|
interrupted.
|
|
.SH MOUNTING FROM /ETC/FSTAB
|
|
.sp
|
|
To mount an SSHFS filesystem from \fB/etc/fstab\fP, simply use \fBsshfs\(ga
|
|
as the file system type. (For backwards compatibility, you may also
|
|
use \(ga\(gafuse.sshfs\fP).
|
|
.SH SEE ALSO
|
|
.sp
|
|
The \fImount.fuse(8)\fP manpage.
|
|
.SH GETTING HELP
|
|
.sp
|
|
If you need help, please ask on the <\fI\%fuse\-sshfs@lists.sourceforge.net\fP>
|
|
mailing list (subscribe at
|
|
\fI\%https://lists.sourceforge.net/lists/listinfo/fuse\-sshfs\fP).
|
|
.sp
|
|
Please report any bugs on the GitHub issue tracker at
|
|
\fI\%https://github.com/libfuse/libfuse/issues\fP\&.
|
|
.SH AUTHORS
|
|
.sp
|
|
SSHFS is currently maintained by Nikolaus Rath <\fI\%Nikolaus@rath.org\fP>,
|
|
and was created by Miklos Szeredi <\fI\%miklos@szeredi.hu\fP>.
|
|
.sp
|
|
This man page was originally written by Bartosz Fenski
|
|
<\fI\%fenio@debian.org\fP> for the Debian GNU/Linux distribution (but it may
|
|
be used by others).
|
|
.\" Generated by docutils manpage writer.
|
|
.
|