Home | History | Annotate | Download | only in openssh
      1 SFTP(1)                     General Commands Manual                    SFTP(1)
      2 
      3 NAME
      4      sftp M-bM-^@M-^S secure file transfer program
      5 
      6 SYNOPSIS
      7      sftp [-1246aCfpqrv] [-B buffer_size] [-b batchfile] [-c cipher]
      8           [-D sftp_server_path] [-F ssh_config] [-i identity_file] [-l limit]
      9           [-o ssh_option] [-P port] [-R num_requests] [-S program]
     10           [-s subsystem | sftp_server] host
     11      sftp [user@]host[:file ...]
     12      sftp [user@]host[:dir[/]]
     13      sftp -b batchfile [user@]host
     14 
     15 DESCRIPTION
     16      sftp is an interactive file transfer program, similar to ftp(1), which
     17      performs all operations over an encrypted ssh(1) transport.  It may also
     18      use many features of ssh, such as public key authentication and
     19      compression.  sftp connects and logs into the specified host, then enters
     20      an interactive command mode.
     21 
     22      The second usage format will retrieve files automatically if a non-
     23      interactive authentication method is used; otherwise it will do so after
     24      successful interactive authentication.
     25 
     26      The third usage format allows sftp to start in a remote directory.
     27 
     28      The final usage format allows for automated sessions using the -b option.
     29      In such cases, it is necessary to configure non-interactive
     30      authentication to obviate the need to enter a password at connection time
     31      (see sshd(8) and ssh-keygen(1) for details).
     32 
     33      Since some usage formats use colon characters to delimit host names from
     34      path names, IPv6 addresses must be enclosed in square brackets to avoid
     35      ambiguity.
     36 
     37      The options are as follows:
     38 
     39      -1      Specify the use of protocol version 1.
     40 
     41      -2      Specify the use of protocol version 2.
     42 
     43      -4      Forces sftp to use IPv4 addresses only.
     44 
     45      -6      Forces sftp to use IPv6 addresses only.
     46 
     47      -a      Attempt to continue interrupted transfers rather than overwriting
     48              existing partial or complete copies of files.  If the partial
     49              contents differ from those being transferred, then the resultant
     50              file is likely to be corrupt.
     51 
     52      -B buffer_size
     53              Specify the size of the buffer that sftp uses when transferring
     54              files.  Larger buffers require fewer round trips at the cost of
     55              higher memory consumption.  The default is 32768 bytes.
     56 
     57      -b batchfile
     58              Batch mode reads a series of commands from an input batchfile
     59              instead of stdin.  Since it lacks user interaction it should be
     60              used in conjunction with non-interactive authentication.  A
     61              batchfile of M-bM-^@M-^X-M-bM-^@M-^Y may be used to indicate standard input.  sftp
     62              will abort if any of the following commands fail: get, put,
     63              reget, reput, rename, ln, rm, mkdir, chdir, ls, lchdir, chmod,
     64              chown, chgrp, lpwd, df, symlink, and lmkdir.  Termination on
     65              error can be suppressed on a command by command basis by
     66              prefixing the command with a M-bM-^@M-^X-M-bM-^@M-^Y character (for example, -rm
     67              /tmp/blah*).
     68 
     69      -C      Enables compression (via ssh's -C flag).
     70 
     71      -c cipher
     72              Selects the cipher to use for encrypting the data transfers.
     73              This option is directly passed to ssh(1).
     74 
     75      -D sftp_server_path
     76              Connect directly to a local sftp server (rather than via ssh(1)).
     77              This option may be useful in debugging the client and server.
     78 
     79      -F ssh_config
     80              Specifies an alternative per-user configuration file for ssh(1).
     81              This option is directly passed to ssh(1).
     82 
     83      -f      Requests that files be flushed to disk immediately after
     84              transfer.  When uploading files, this feature is only enabled if
     85              the server implements the "fsync (a] openssh.com" extension.
     86 
     87      -i identity_file
     88              Selects the file from which the identity (private key) for public
     89              key authentication is read.  This option is directly passed to
     90              ssh(1).
     91 
     92      -l limit
     93              Limits the used bandwidth, specified in Kbit/s.
     94 
     95      -o ssh_option
     96              Can be used to pass options to ssh in the format used in
     97              ssh_config(5).  This is useful for specifying options for which
     98              there is no separate sftp command-line flag.  For example, to
     99              specify an alternate port use: sftp -oPort=24.  For full details
    100              of the options listed below, and their possible values, see
    101              ssh_config(5).
    102 
    103                    AddressFamily
    104                    BatchMode
    105                    BindAddress
    106                    CanonicalDomains
    107                    CanonicalizeFallbackLocal
    108                    CanonicalizeHostname
    109                    CanonicalizeMaxDots
    110                    CanonicalizePermittedCNAMEs
    111                    CertificateFile
    112                    ChallengeResponseAuthentication
    113                    CheckHostIP
    114                    Cipher
    115                    Ciphers
    116                    Compression
    117                    CompressionLevel
    118                    ConnectionAttempts
    119                    ConnectTimeout
    120                    ControlMaster
    121                    ControlPath
    122                    ControlPersist
    123                    GlobalKnownHostsFile
    124                    GSSAPIAuthentication
    125                    GSSAPIDelegateCredentials
    126                    HashKnownHosts
    127                    Host
    128                    HostbasedAuthentication
    129                    HostbasedKeyTypes
    130                    HostKeyAlgorithms
    131                    HostKeyAlias
    132                    HostName
    133                    IdentitiesOnly
    134                    IdentityAgent
    135                    IdentityFile
    136                    IPQoS
    137                    KbdInteractiveAuthentication
    138                    KbdInteractiveDevices
    139                    KexAlgorithms
    140                    LogLevel
    141                    MACs
    142                    NoHostAuthenticationForLocalhost
    143                    NumberOfPasswordPrompts
    144                    PasswordAuthentication
    145                    PKCS11Provider
    146                    Port
    147                    PreferredAuthentications
    148                    Protocol
    149                    ProxyCommand
    150                    ProxyJump
    151                    PubkeyAuthentication
    152                    RekeyLimit
    153                    RhostsRSAAuthentication
    154                    RSAAuthentication
    155                    SendEnv
    156                    ServerAliveInterval
    157                    ServerAliveCountMax
    158                    StrictHostKeyChecking
    159                    TCPKeepAlive
    160                    UpdateHostKeys
    161                    UsePrivilegedPort
    162                    User
    163                    UserKnownHostsFile
    164                    VerifyHostKeyDNS
    165 
    166      -P port
    167              Specifies the port to connect to on the remote host.
    168 
    169      -p      Preserves modification times, access times, and modes from the
    170              original files transferred.
    171 
    172      -q      Quiet mode: disables the progress meter as well as warning and
    173              diagnostic messages from ssh(1).
    174 
    175      -R num_requests
    176              Specify how many requests may be outstanding at any one time.
    177              Increasing this may slightly improve file transfer speed but will
    178              increase memory usage.  The default is 64 outstanding requests.
    179 
    180      -r      Recursively copy entire directories when uploading and
    181              downloading.  Note that sftp does not follow symbolic links
    182              encountered in the tree traversal.
    183 
    184      -S program
    185              Name of the program to use for the encrypted connection.  The
    186              program must understand ssh(1) options.
    187 
    188      -s subsystem | sftp_server
    189              Specifies the SSH2 subsystem or the path for an sftp server on
    190              the remote host.  A path is useful for using sftp over protocol
    191              version 1, or when the remote sshd(8) does not have an sftp
    192              subsystem configured.
    193 
    194      -v      Raise logging level.  This option is also passed to ssh.
    195 
    196 INTERACTIVE COMMANDS
    197      Once in interactive mode, sftp understands a set of commands similar to
    198      those of ftp(1).  Commands are case insensitive.  Pathnames that contain
    199      spaces must be enclosed in quotes.  Any special characters contained
    200      within pathnames that are recognized by glob(3) must be escaped with
    201      backslashes (M-bM-^@M-^X\M-bM-^@M-^Y).
    202 
    203      bye     Quit sftp.
    204 
    205      cd path
    206              Change remote directory to path.
    207 
    208      chgrp grp path
    209              Change group of file path to grp.  path may contain glob(3)
    210              characters and may match multiple files.  grp must be a numeric
    211              GID.
    212 
    213      chmod mode path
    214              Change permissions of file path to mode.  path may contain
    215              glob(3) characters and may match multiple files.
    216 
    217      chown own path
    218              Change owner of file path to own.  path may contain glob(3)
    219              characters and may match multiple files.  own must be a numeric
    220              UID.
    221 
    222      df [-hi] [path]
    223              Display usage information for the filesystem holding the current
    224              directory (or path if specified).  If the -h flag is specified,
    225              the capacity information will be displayed using "human-readable"
    226              suffixes.  The -i flag requests display of inode information in
    227              addition to capacity information.  This command is only supported
    228              on servers that implement the M-bM-^@M-^\statvfs (a] openssh.comM-bM-^@M-^] extension.
    229 
    230      exit    Quit sftp.
    231 
    232      get [-afPpr] remote-path [local-path]
    233              Retrieve the remote-path and store it on the local machine.  If
    234              the local path name is not specified, it is given the same name
    235              it has on the remote machine.  remote-path may contain glob(3)
    236              characters and may match multiple files.  If it does and
    237              local-path is specified, then local-path must specify a
    238              directory.
    239 
    240              If the -a flag is specified, then attempt to resume partial
    241              transfers of existing files.  Note that resumption assumes that
    242              any partial copy of the local file matches the remote copy.  If
    243              the remote file contents differ from the partial local copy then
    244              the resultant file is likely to be corrupt.
    245 
    246              If the -f flag is specified, then fsync(2) will be called after
    247              the file transfer has completed to flush the file to disk.
    248 
    249              If either the -P or -p flag is specified, then full file
    250              permissions and access times are copied too.
    251 
    252              If the -r flag is specified then directories will be copied
    253              recursively.  Note that sftp does not follow symbolic links when
    254              performing recursive transfers.
    255 
    256      help    Display help text.
    257 
    258      lcd path
    259              Change local directory to path.
    260 
    261      lls [ls-options [path]]
    262              Display local directory listing of either path or current
    263              directory if path is not specified.  ls-options may contain any
    264              flags supported by the local system's ls(1) command.  path may
    265              contain glob(3) characters and may match multiple files.
    266 
    267      lmkdir path
    268              Create local directory specified by path.
    269 
    270      ln [-s] oldpath newpath
    271              Create a link from oldpath to newpath.  If the -s flag is
    272              specified the created link is a symbolic link, otherwise it is a
    273              hard link.
    274 
    275      lpwd    Print local working directory.
    276 
    277      ls [-1afhlnrSt] [path]
    278              Display a remote directory listing of either path or the current
    279              directory if path is not specified.  path may contain glob(3)
    280              characters and may match multiple files.
    281 
    282              The following flags are recognized and alter the behaviour of ls
    283              accordingly:
    284 
    285              -1      Produce single columnar output.
    286 
    287              -a      List files beginning with a dot (M-bM-^@M-^X.M-bM-^@M-^Y).
    288 
    289              -f      Do not sort the listing.  The default sort order is
    290                      lexicographical.
    291 
    292              -h      When used with a long format option, use unit suffixes:
    293                      Byte, Kilobyte, Megabyte, Gigabyte, Terabyte, Petabyte,
    294                      and Exabyte in order to reduce the number of digits to
    295                      four or fewer using powers of 2 for sizes (K=1024,
    296                      M=1048576, etc.).
    297 
    298              -l      Display additional details including permissions and
    299                      ownership information.
    300 
    301              -n      Produce a long listing with user and group information
    302                      presented numerically.
    303 
    304              -r      Reverse the sort order of the listing.
    305 
    306              -S      Sort the listing by file size.
    307 
    308              -t      Sort the listing by last modification time.
    309 
    310      lumask umask
    311              Set local umask to umask.
    312 
    313      mkdir path
    314              Create remote directory specified by path.
    315 
    316      progress
    317              Toggle display of progress meter.
    318 
    319      put [-afPpr] local-path [remote-path]
    320              Upload local-path and store it on the remote machine.  If the
    321              remote path name is not specified, it is given the same name it
    322              has on the local machine.  local-path may contain glob(3)
    323              characters and may match multiple files.  If it does and
    324              remote-path is specified, then remote-path must specify a
    325              directory.
    326 
    327              If the -a flag is specified, then attempt to resume partial
    328              transfers of existing files.  Note that resumption assumes that
    329              any partial copy of the remote file matches the local copy.  If
    330              the local file contents differ from the remote local copy then
    331              the resultant file is likely to be corrupt.
    332 
    333              If the -f flag is specified, then a request will be sent to the
    334              server to call fsync(2) after the file has been transferred.
    335              Note that this is only supported by servers that implement the
    336              "fsync (a] openssh.com" extension.
    337 
    338              If either the -P or -p flag is specified, then full file
    339              permissions and access times are copied too.
    340 
    341              If the -r flag is specified then directories will be copied
    342              recursively.  Note that sftp does not follow symbolic links when
    343              performing recursive transfers.
    344 
    345      pwd     Display remote working directory.
    346 
    347      quit    Quit sftp.
    348 
    349      reget [-Ppr] remote-path [local-path]
    350              Resume download of remote-path.  Equivalent to get with the -a
    351              flag set.
    352 
    353      reput [-Ppr] [local-path] remote-path
    354              Resume upload of [local-path].  Equivalent to put with the -a
    355              flag set.
    356 
    357      rename oldpath newpath
    358              Rename remote file from oldpath to newpath.
    359 
    360      rm path
    361              Delete remote file specified by path.
    362 
    363      rmdir path
    364              Remove remote directory specified by path.
    365 
    366      symlink oldpath newpath
    367              Create a symbolic link from oldpath to newpath.
    368 
    369      version
    370              Display the sftp protocol version.
    371 
    372      !command
    373              Execute command in local shell.
    374 
    375      !       Escape to local shell.
    376 
    377      ?       Synonym for help.
    378 
    379 SEE ALSO
    380      ftp(1), ls(1), scp(1), ssh(1), ssh-add(1), ssh-keygen(1), glob(3),
    381      ssh_config(5), sftp-server(8), sshd(8)
    382 
    383      T. Ylonen and S. Lehtinen, SSH File Transfer Protocol, draft-ietf-secsh-
    384      filexfer-00.txt, January 2001, work in progress material.
    385 
    386 OpenBSD 6.0                      July 16, 2016                     OpenBSD 6.0
    387