1 SFTP(1) OpenBSD Reference Manual SFTP(1)
4 sftp - secure file transfer program
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
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.
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.
26 The third usage format allows sftp to start in a remote directory.
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).
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
37 The options are as follows:
39 -1 Specify the use of protocol version 1.
41 -2 Specify the use of protocol version 2.
43 -4 Forces sftp to use IPv4 addresses only.
45 -6 Forces sftp to use IPv6 addresses only.
47 -a Attempt to continue interrupted downloads rather than overwriting
48 existing partial or complete copies of files. If the remote file
49 contents differ from the partial local copy then the resultant
50 file is likely to be corrupt.
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.
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 `-' may be used to indicate standard input. sftp
62 will abort if any of the following commands fail: get, put,
63 reget, rename, ln, rm, mkdir, chdir, ls, lchdir, chmod, chown,
64 chgrp, lpwd, df, symlink, and lmkdir. Termination on error can
65 be suppressed on a command by command basis by prefixing the
66 command with a `-' character (for example, -rm /tmp/blah*).
68 -C Enables compression (via ssh's -C flag).
71 Selects the cipher to use for encrypting the data transfers.
72 This option is directly passed to ssh(1).
75 Connect directly to a local sftp server (rather than via ssh(1)).
76 This option may be useful in debugging the client and server.
79 Specifies an alternative per-user configuration file for ssh(1).
80 This option is directly passed to ssh(1).
82 -f Requests that files be flushed to disk immediately after
83 transfer. When uploading files, this feature is only enabled if
84 the server implements the "fsync@openssh.com" extension.
87 Selects the file from which the identity (private key) for public
88 key authentication is read. This option is directly passed to
92 Limits the used bandwidth, specified in Kbit/s.
95 Can be used to pass options to ssh in the format used in
96 ssh_config(5). This is useful for specifying options for which
97 there is no separate sftp command-line flag. For example, to
98 specify an alternate port use: sftp -oPort=24. For full details
99 of the options listed below, and their possible values, see
106 CanonicalizeFallbackLocal
109 CanonicalizePermittedCNAMEs
110 ChallengeResponseAuthentication
123 GSSAPIDelegateCredentials
126 HostbasedAuthentication
133 KbdInteractiveAuthentication
134 KbdInteractiveDevices
138 NoHostAuthenticationForLocalhost
139 NumberOfPasswordPrompts
140 PasswordAuthentication
143 PreferredAuthentications
148 RhostsRSAAuthentication
153 StrictHostKeyChecking
161 Specifies the port to connect to on the remote host.
163 -p Preserves modification times, access times, and modes from the
164 original files transferred.
166 -q Quiet mode: disables the progress meter as well as warning and
167 diagnostic messages from ssh(1).
170 Specify how many requests may be outstanding at any one time.
171 Increasing this may slightly improve file transfer speed but will
172 increase memory usage. The default is 64 outstanding requests.
174 -r Recursively copy entire directories when uploading and
175 downloading. Note that sftp does not follow symbolic links
176 encountered in the tree traversal.
179 Name of the program to use for the encrypted connection. The
180 program must understand ssh(1) options.
182 -s subsystem | sftp_server
183 Specifies the SSH2 subsystem or the path for an sftp server on
184 the remote host. A path is useful for using sftp over protocol
185 version 1, or when the remote sshd(8) does not have an sftp
186 subsystem configured.
188 -v Raise logging level. This option is also passed to ssh.
191 Once in interactive mode, sftp understands a set of commands similar to
192 those of ftp(1). Commands are case insensitive. Pathnames that contain
193 spaces must be enclosed in quotes. Any special characters contained
194 within pathnames that are recognized by glob(3) must be escaped with
200 Change remote directory to path.
203 Change group of file path to grp. path may contain glob(3)
204 characters and may match multiple files. grp must be a numeric
208 Change permissions of file path to mode. path may contain
209 glob(3) characters and may match multiple files.
212 Change owner of file path to own. path may contain glob(3)
213 characters and may match multiple files. own must be a numeric
217 Display usage information for the filesystem holding the current
218 directory (or path if specified). If the -h flag is specified,
219 the capacity information will be displayed using "human-readable"
220 suffixes. The -i flag requests display of inode information in
221 addition to capacity information. This command is only supported
222 on servers that implement the ``statvfs@openssh.com'' extension.
226 get [-afPpr] remote-path [local-path]
227 Retrieve the remote-path and store it on the local machine. If
228 the local path name is not specified, it is given the same name
229 it has on the remote machine. remote-path may contain glob(3)
230 characters and may match multiple files. If it does and
231 local-path is specified, then local-path must specify a
234 If the -a flag is specified, then attempt to resume partial
235 transfers of existing files. Note that resumption assumes that
236 any partial copy of the local file matches the remote copy. If
237 the remote file contents differ from the partial local copy then
238 the resultant file is likely to be corrupt.
240 If the -f flag is specified, then fsync(2) will be called after
241 the file transfer has completed to flush the file to disk.
243 If either the -P or -p flag is specified, then full file
244 permissions and access times are copied too.
246 If the -r flag is specified then directories will be copied
247 recursively. Note that sftp does not follow symbolic links when
248 performing recursive transfers.
250 help Display help text.
253 Change local directory to path.
255 lls [ls-options [path]]
256 Display local directory listing of either path or current
257 directory if path is not specified. ls-options may contain any
258 flags supported by the local system's ls(1) command. path may
259 contain glob(3) characters and may match multiple files.
262 Create local directory specified by path.
264 ln [-s] oldpath newpath
265 Create a link from oldpath to newpath. If the -s flag is
266 specified the created link is a symbolic link, otherwise it is a
269 lpwd Print local working directory.
271 ls [-1afhlnrSt] [path]
272 Display a remote directory listing of either path or the current
273 directory if path is not specified. path may contain glob(3)
274 characters and may match multiple files.
276 The following flags are recognized and alter the behaviour of ls
279 -1 Produce single columnar output.
281 -a List files beginning with a dot (`.').
283 -f Do not sort the listing. The default sort order is
286 -h When used with a long format option, use unit suffixes:
287 Byte, Kilobyte, Megabyte, Gigabyte, Terabyte, Petabyte,
288 and Exabyte in order to reduce the number of digits to
289 four or fewer using powers of 2 for sizes (K=1024,
292 -l Display additional details including permissions and
293 ownership information.
295 -n Produce a long listing with user and group information
296 presented numerically.
298 -r Reverse the sort order of the listing.
300 -S Sort the listing by file size.
302 -t Sort the listing by last modification time.
305 Set local umask to umask.
308 Create remote directory specified by path.
311 Toggle display of progress meter.
313 put [-fPpr] local-path [remote-path]
314 Upload local-path and store it on the remote machine. If the
315 remote path name is not specified, it is given the same name it
316 has on the local machine. local-path may contain glob(3)
317 characters and may match multiple files. If it does and
318 remote-path is specified, then remote-path must specify a
321 If the -f flag is specified, then a request will be sent to the
322 server to call fsync(2) after the file has been transferred.
323 Note that this is only supported by servers that implement the
324 "fsync@openssh.com" extension.
326 If either the -P or -p flag is specified, then full file
327 permissions and access times are copied too.
329 If the -r flag is specified then directories will be copied
330 recursively. Note that sftp does not follow symbolic links when
331 performing recursive transfers.
333 pwd Display remote working directory.
337 reget [-Ppr] remote-path [local-path]
338 Resume download of remote-path. Equivalent to get with the -a
341 rename oldpath newpath
342 Rename remote file from oldpath to newpath.
345 Delete remote file specified by path.
348 Remove remote directory specified by path.
350 symlink oldpath newpath
351 Create a symbolic link from oldpath to newpath.
354 Display the sftp protocol version.
357 Execute command in local shell.
359 ! Escape to local shell.
364 ftp(1), ls(1), scp(1), ssh(1), ssh-add(1), ssh-keygen(1), glob(3),
365 ssh_config(5), sftp-server(8), sshd(8)
367 T. Ylonen and S. Lehtinen, SSH File Transfer Protocol, draft-ietf-secsh-
368 filexfer-00.txt, January 2001, work in progress material.
370 OpenBSD 5.5 October 20, 2013 OpenBSD 5.5