• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1SFTP(1)                     General Commands Manual                    SFTP(1)
2
3NAME
4     sftp M-bM-^@M-^S secure file transfer program
5
6SYNOPSIS
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
15DESCRIPTION
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@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
196INTERACTIVE 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@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@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
379SEE 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
386OpenBSD 6.0                      July 16, 2016                     OpenBSD 6.0
387