# man > sftp-server(8)

[_SFTP-SERVER_(8)](https://www.chedong.com/phpMan.php/man/SFTP-SERVER/8/markdown)                         System Manager's Manual                        [_SFTP-SERVER_(8)](https://www.chedong.com/phpMan.php/man/SFTP-SERVER/8/markdown)

## NAME
       sftp-server — OpenSSH SFTP server subsystem

## SYNOPSIS
       **sftp-server **[**-ehR**] [**-d _**start_directory_] [**-f _**log_facility_] [**-l _**log_level_] [**-P _**denied_requests_]
                   [**-p _**allowed_requests_] [**-u _**umask_]
       **sftp-server -Q _**protocol_feature_

## DESCRIPTION
       **sftp-server  **is  a program that speaks the server side of SFTP protocol to stdout and expects
       client requests from stdin.  **sftp-server **is not intended to  be  called  directly,  but  from
       [_sshd_(8)](https://www.chedong.com/phpMan.php/man/sshd/8/markdown) using the **Subsystem **option.

       Command-line  flags  to  **sftp-server  **should  be specified in the **Subsystem **declaration.  See
       [_sshd_config_(5)](https://www.chedong.com/phpMan.php/man/sshdconfig/5/markdown) for more information.

       Valid options are:

### -d _
               Specifies an alternate starting directory for users.  The pathname  may  contain  the
               following tokens that are expanded at runtime: %% is replaced by a literal '%', %d is
               replaced by the home directory of the user being authenticated, and %u is replaced by
               the  username  of  that user.  The default is to use the user's home directory.  This
               option is useful in conjunction with the [_sshd_config_(5)](https://www.chedong.com/phpMan.php/man/sshdconfig/5/markdown) **ChrootDirectory **option.

### -e      
               bugging.

### -f _
               Specifies the facility code that is used when logging messages from **sftp-server**.  The
               possible  values are: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LO‐
               CAL5, LOCAL6, LOCAL7.  The default is AUTH.

### -h      

### -l _
               Specifies which messages will be logged by **sftp-server**.   The  possible  values  are:
               QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, and DEBUG3.  INFO and VER‐
               BOSE  log  transactions that **sftp-server **performs on behalf of the client.  DEBUG and
               DEBUG1 are equivalent.  DEBUG2 and DEBUG3 each specify  higher  levels  of  debugging
               output.  The default is ERROR.

### -P _
               Specifies  a  comma-separated  list  of SFTP protocol requests that are banned by the
               server.  **sftp-server **will reply to any denied request with a failure.   The  **-Q  **flag
               can  be  used  to  determine the supported request types.  If both denied and allowed
               lists are specified, then the denied list is applied before the allowed list.

### -p _
               Specifies a comma-separated list of SFTP protocol requests that are permitted by  the
               server.   All  request  types  that  are  not  on the allowed list will be logged and
               replied to with a failure message.

               Care must be taken when using this feature to ensure that requests made implicitly by
               SFTP clients are permitted.

### -Q _
               Queries protocol features supported by **sftp-server**.  At present the only feature that
               may be queried is “requests”, which may be used to deny or  allow  specific  requests
               (flags **-P **and **-p **respectively).

### -R      
               for writing, as well as other operations that change the  state  of  the  filesystem,
               will be denied.

### -u _
               Sets  an  explicit [_umask_(2)](https://www.chedong.com/phpMan.php/man/umask/2/markdown) to be applied to newly-created files and directories, in‐
               stead of the user's default mask.

       On some systems, **sftp-server **must be able to access _/dev/log_ for logging to work, and use  of
       **sftp-server  **in a chroot configuration therefore requires that [_syslogd_(8)](https://www.chedong.com/phpMan.php/man/syslogd/8/markdown) establish a logging
       socket inside the chroot directory.

## SEE ALSO
       [_sftp_(1)](https://www.chedong.com/phpMan.php/man/sftp/1/markdown), [_ssh_(1)](https://www.chedong.com/phpMan.php/man/ssh/1/markdown), [_sshd_config_(5)](https://www.chedong.com/phpMan.php/man/sshdconfig/5/markdown), [_sshd_(8)](https://www.chedong.com/phpMan.php/man/sshd/8/markdown)

       T. Ylonen and S. Lehtinen,  _SSH_  _File_  _Transfer_  _Protocol_,  draft-ietf-secsh-filexfer-02.txt,
       October 2001, work in progress material.

## HISTORY
       **sftp-server **first appeared in OpenBSD 2.8.

## AUTHORS
       Markus Friedl <<_markus@openbsd.org_>>

Debian                                      July 27, 2021                             [_SFTP-SERVER_(8)](https://www.chedong.com/phpMan.php/man/SFTP-SERVER/8/markdown)
