Search documentation of ssh

# ssh_sftpd (ssh v6.0.4)

Copy Markdown View Source

Specifies the channel process to handle an SFTP subsystem.

Specifies a channel process to handle an SFTP subsystem.

## Summary

### Functions

subsystem_spec(Options)

Is to be used together with `ssh:daemon/[1,2,3]`

## Functions

# subsystem_spec(Options)

    -spec subsystem_spec(Options) -> Spec
                            when
                                Options ::
                                    [{cwd, string()} |
                                     {file_handler, CbMod | {CbMod, FileState}} |
                                     {max_files, integer()} |
                                     {max_handles, integer()} |
                                     {max_path, integer()} |
                                     {root, string()} |
                                     {sftpd_vsn, integer()}],
                                Spec :: {Name, {CbMod, Options}},
                                Name :: string(),
                                CbMod :: atom(),
                                FileState :: term().

Is to be used together with `ssh:daemon/[1,2,3]`

The `Name` is `"sftp"` and `CbMod` is the name of the Erlang module implementing the subsystem using the `ssh_server_channel` (replaces ssh_daemon_channel) behaviour.

Options:

- `cwd` - Sets the initial current working directory for the server.

- `file_handler` - Determines which module to call for accessing the file server. The default value is `ssh_sftpd_file`, which uses the `file` and `filelib` APIs to access the standard OTP file server. This option can be used to plug in other file servers.

- `max_files` - The default value is `0`, which means that there is no upper limit. If supplied, the number of filenames returned to the SFTP client per `READDIR` request is limited to at most the given value.

- `max_handles` - The default value is `1000`. Positive integer value represents the maximum number of file handles allowed for a connection.

  (Note: separate limitation might be also enforced by underlying operating system)

- `max_path` - The default value is `4096`. Positive integer value represents the maximum path length which cannot be exceeded in data provided by the SFTP client. (Note: limitations might be also enforced by underlying operating system)

- `root` - Sets the SFTP root directory. Must be an absolute path (e.g., `/tmp`). Then the user cannot see any files above this root. If, for example, the root directory is set to `/tmp`, then the user sees this directory as `/`. If the user then writes `cd /etc`, the user moves to `/tmp/etc`.

  Note: This provides application-level isolation. For additional security, consider using OS-level chroot or similar mechanisms. See the SFTP subsystem section in the Hardening guide for deployment recommendations.

- `sftpd_vsn` - Sets the SFTP version to use. Defaults to 5. Version 6 is under development and limited.