1 SFTP(1) OpenBSD Reference Manual SFTP(1)
4 sftp - secure file transfer program
7 sftp [-1246Cpqrv] [-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.
48 Specify the size of the buffer that sftp uses when transferring
49 files. Larger buffers require fewer round trips at the cost of
50 higher memory consumption. The default is 32768 bytes.
53 Batch mode reads a series of commands from an input batchfile
54 instead of stdin. Since it lacks user interaction it should be
55 used in conjunction with non-interactive authentication. A
56 batchfile of `-' may be used to indicate standard input. sftp
57 will abort if any of the following commands fail: get, put,
58 reget, rename, ln, rm, mkdir, chdir, ls, lchdir, chmod, chown,
59 chgrp, lpwd, df, symlink, and lmkdir. Termination on error can
60 be suppressed on a command by command basis by prefixing the
61 command with a `-' character (for example, -rm /tmp/blah*).
63 -C Enables compression (via ssh's -C flag).
66 Selects the cipher to use for encrypting the data transfers.
67 This option is directly passed to ssh(1).
70 Connect directly to a local sftp server (rather than via ssh(1)).
71 This option may be useful in debugging the client and server.
74 Specifies an alternative per-user configuration file for ssh(1).
75 This option is directly passed to ssh(1).
78 Selects the file from which the identity (private key) for public
79 key authentication is read. This option is directly passed to
83 Limits the used bandwidth, specified in Kbit/s.
86 Can be used to pass options to ssh in the format used in
87 ssh_config(5). This is useful for specifying options for which
88 there is no separate sftp command-line flag. For example, to
89 specify an alternate port use: sftp -oPort=24. For full details
90 of the options listed below, and their possible values, see
96 ChallengeResponseAuthentication
109 GSSAPIDelegateCredentials
112 HostbasedAuthentication
119 KbdInteractiveAuthentication
120 KbdInteractiveDevices
124 NoHostAuthenticationForLocalhost
125 NumberOfPasswordPrompts
126 PasswordAuthentication
129 PreferredAuthentications
134 RhostsRSAAuthentication
139 StrictHostKeyChecking
147 Specifies the port to connect to on the remote host.
149 -p Preserves modification times, access times, and modes from the
150 original files transferred.
152 -q Quiet mode: disables the progress meter as well as warning and
153 diagnostic messages from ssh(1).
156 Specify how many requests may be outstanding at any one time.
157 Increasing this may slightly improve file transfer speed but will
158 increase memory usage. The default is 64 outstanding requests.
160 -r Recursively copy entire directories when uploading and
161 downloading. Note that sftp does not follow symbolic links
162 encountered in the tree traversal.
165 Name of the program to use for the encrypted connection. The
166 program must understand ssh(1) options.
168 -s subsystem | sftp_server
169 Specifies the SSH2 subsystem or the path for an sftp server on
170 the remote host. A path is useful for using sftp over protocol
171 version 1, or when the remote sshd(8) does not have an sftp
172 subsystem configured.
174 -v Raise logging level. This option is also passed to ssh.
177 Once in interactive mode, sftp understands a set of commands similar to
178 those of ftp(1). Commands are case insensitive. Pathnames that contain
179 spaces must be enclosed in quotes. Any special characters contained
180 within pathnames that are recognized by glob(3) must be escaped with
186 Change remote directory to path.
189 Change group of file path to grp. path may contain glob(3)
190 characters and may match multiple files. grp must be a numeric
194 Change permissions of file path to mode. path may contain
195 glob(3) characters and may match multiple files.
198 Change owner of file path to own. path may contain glob(3)
199 characters and may match multiple files. own must be a numeric
203 Display usage information for the filesystem holding the current
204 directory (or path if specified). If the -h flag is specified,
205 the capacity information will be displayed using "human-readable"
206 suffixes. The -i flag requests display of inode information in
207 addition to capacity information. This command is only supported
208 on servers that implement the ``statvfs@openssh.com'' extension.
212 get [-aPpr] remote-path [local-path]
213 Retrieve the remote-path and store it on the local machine. If
214 the local path name is not specified, it is given the same name
215 it has on the remote machine. remote-path may contain glob(3)
216 characters and may match multiple files. If it does and
217 local-path is specified, then local-path must specify a
220 If the -a flag is specified, then attempt to resume partial
221 transfers of existing files. Note that resumption assumes that
222 any partial copy of the local file matches the remote copy. If
223 the remote file differs from the partial local copy then the
224 resultant file is likely to be corrupt.
226 If either the -P or -p flag is specified, then full file
227 permissions and access times are copied too.
229 If the -r flag is specified then directories will be copied
230 recursively. Note that sftp does not follow symbolic links when
231 performing recursive transfers.
233 help Display help text.
236 Change local directory to path.
238 lls [ls-options [path]]
239 Display local directory listing of either path or current
240 directory if path is not specified. ls-options may contain any
241 flags supported by the local system's ls(1) command. path may
242 contain glob(3) characters and may match multiple files.
245 Create local directory specified by path.
247 ln [-s] oldpath newpath
248 Create a link from oldpath to newpath. If the -s flag is
249 specified the created link is a symbolic link, otherwise it is a
252 lpwd Print local working directory.
254 ls [-1afhlnrSt] [path]
255 Display a remote directory listing of either path or the current
256 directory if path is not specified. path may contain glob(3)
257 characters and may match multiple files.
259 The following flags are recognized and alter the behaviour of ls
262 -1 Produce single columnar output.
264 -a List files beginning with a dot (`.').
266 -f Do not sort the listing. The default sort order is
269 -h When used with a long format option, use unit suffixes:
270 Byte, Kilobyte, Megabyte, Gigabyte, Terabyte, Petabyte,
271 and Exabyte in order to reduce the number of digits to
272 four or fewer using powers of 2 for sizes (K=1024,
275 -l Display additional details including permissions and
276 ownership information.
278 -n Produce a long listing with user and group information
279 presented numerically.
281 -r Reverse the sort order of the listing.
283 -S Sort the listing by file size.
285 -t Sort the listing by last modification time.
288 Set local umask to umask.
291 Create remote directory specified by path.
294 Toggle display of progress meter.
296 put [-Ppr] local-path [remote-path]
297 Upload local-path and store it on the remote machine. If the
298 remote path name is not specified, it is given the same name it
299 has on the local machine. local-path may contain glob(3)
300 characters and may match multiple files. If it does and
301 remote-path is specified, then remote-path must specify a
304 If either the -P or -p flag is specified, then full file
305 permissions and access times are copied too.
307 If the -r flag is specified then directories will be copied
308 recursively. Note that sftp does not follow symbolic links when
309 performing recursive transfers.
311 pwd Display remote working directory.
315 reget [-Ppr] remote-path [local-path]
316 Resume download of remote-path. Equivalent to get with the -a
319 rename oldpath newpath
320 Rename remote file from oldpath to newpath.
323 Delete remote file specified by path.
326 Remove remote directory specified by path.
328 symlink oldpath newpath
329 Create a symbolic link from oldpath to newpath.
332 Display the sftp protocol version.
335 Execute command in local shell.
337 ! Escape to local shell.
342 ftp(1), ls(1), scp(1), ssh(1), ssh-add(1), ssh-keygen(1), glob(3),
343 ssh_config(5), sftp-server(8), sshd(8)
345 T. Ylonen and S. Lehtinen, SSH File Transfer Protocol, draft-ietf-secsh-
346 filexfer-00.txt, January 2001, work in progress material.
348 OpenBSD 5.4 July 25, 2013 OpenBSD 5.4