1.\" $OpenBSD: sftp.1,v 1.45 2003/09/02 18:50:06 jmc Exp $ 2.\" 3.\" Copyright (c) 2001 Damien Miller. All rights reserved. 4.\" 5.\" Redistribution and use in source and binary forms, with or without 6.\" modification, are permitted provided that the following conditions 7.\" are met: 8.\" 1. Redistributions of source code must retain the above copyright 9.\" notice, this list of conditions and the following disclaimer. 10.\" 2. Redistributions in binary form must reproduce the above copyright 11.\" notice, this list of conditions and the following disclaimer in the 12.\" documentation and/or other materials provided with the distribution. 13.\" 14.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 15.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 16.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 17.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 18.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 19.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 20.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 21.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 23.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24.\" 25.Dd February 4, 2001 26.Dt SFTP 1 27.Os 28.Sh NAME 29.Nm sftp 30.Nd secure file transfer program 31.Sh SYNOPSIS 32.Nm sftp 33.Bk -words 34.Op Fl vC1 35.Op Fl b Ar batchfile 36.Op Fl o Ar ssh_option 37.Op Fl s Ar subsystem | sftp_server 38.Op Fl B Ar buffer_size 39.Op Fl F Ar ssh_config 40.Op Fl P Ar sftp_server path 41.Op Fl R Ar num_requests 42.Op Fl S Ar program 43.Ar host 44.Ek 45.Nm sftp 46.Oo Oo Ar user Ns @ Oc Ns 47.Ar host Ns Oo : Ns Ar file Oo 48.Ar file Oc Oc Oc 49.Nm sftp 50.Oo Oo Ar user Ns @ Oc Ns 51.Ar host Ns Oo : Ns Ar dir Ns 52.Oo Ar / Oc Oc Oc 53.Nm sftp 54.Fl b Ar batchfile 55.Oo Ar user Ns @ Oc Ns Ar host 56.Sh DESCRIPTION 57.Nm 58is an interactive file transfer program, similar to 59.Xr ftp 1 , 60which performs all operations over an encrypted 61.Xr ssh 1 62transport. 63It may also use many features of ssh, such as public key authentication and 64compression. 65.Nm 66connects and logs into the specified 67.Ar host , 68then enters an interactive command mode. 69.Pp 70The second usage format will retrieve files automatically if a non-interactive 71authentication method is used; otherwise it will do so after 72successful interactive authentication. 73.Pp 74The third usage format allows the sftp client to start in a remote directory. 75.Pp 76The final usage format allows for automated sessions using the 77.Fl b 78option. 79In such cases, it is usually necessary to configure public key authentication 80to obviate the need to enter a password at connection time (see 81.Xr sshd 8 82and 83.Xr ssh-keygen 1 84for details). 85The options are as follows: 86.Bl -tag -width Ds 87.It Fl b Ar batchfile 88Batch mode reads a series of commands from an input 89.Ar batchfile 90instead of 91.Em stdin . 92Since it lacks user interaction it should be used in conjunction with 93non-interactive authentication. 94.Nm 95will abort if any of the following 96commands fail: 97.Ic get , put , rename , ln , 98.Ic rm , mkdir , chdir , ls , 99.Ic lchdir , chmod , chown , chgrp , lpwd 100and 101.Ic lmkdir . 102Termination on error can be suppressed on a command by command basis by 103prefixing the command with a 104.Sq Ic \- 105character (for example, 106.Ic -rm /tmp/blah* ) . 107.It Fl o Ar ssh_option 108Can be used to pass options to 109.Nm ssh 110in the format used in 111.Xr ssh_config 5 . 112This is useful for specifying options 113for which there is no separate 114.Nm sftp 115command-line flag. 116For example, to specify an alternate port use: 117.Ic sftp -oPort=24 . 118.It Fl s Ar subsystem | sftp_server 119Specifies the SSH2 subsystem or the path for an sftp server 120on the remote host. 121A path is useful for using 122.Nm 123over protocol version 1, or when the remote 124.Xr sshd 8 125does not have an sftp subsystem configured. 126.It Fl v 127Raise logging level. 128This option is also passed to ssh. 129.It Fl B Ar buffer_size 130Specify the size of the buffer that 131.Nm 132uses when transferring files. 133Larger buffers require fewer round trips at the cost of higher 134memory consumption. 135The default is 32768 bytes. 136.It Fl C 137Enables compression (via ssh's 138.Fl C 139flag). 140.It Fl F Ar ssh_config 141Specifies an alternative 142per-user configuration file for 143.Xr ssh 1 . 144This option is directly passed to 145.Xr ssh 1 . 146.It Fl P Ar sftp_server path 147Connect directly to a local sftp server 148(rather than via 149.Xr ssh 1 ) 150This option may be useful in debugging the client and server. 151.It Fl R Ar num_requests 152Specify how many requests may be outstanding at any one time. 153Increasing this may slightly improve file transfer speed 154but will increase memory usage. 155The default is 16 outstanding requests. 156.It Fl S Ar program 157Name of the 158.Ar program 159to use for the encrypted connection. 160The program must understand 161.Xr ssh 1 162options. 163.It Fl 1 164Specify the use of protocol version 1. 165.El 166.Sh INTERACTIVE COMMANDS 167Once in interactive mode, 168.Nm 169understands a set of commands similar to those of 170.Xr ftp 1 . 171Commands are case insensitive and pathnames may be enclosed in quotes if they 172contain spaces. 173.Bl -tag -width Ds 174.It Ic bye 175Quit 176.Nm sftp . 177.It Ic cd Ar path 178Change remote directory to 179.Ar path . 180.It Ic lcd Ar path 181Change local directory to 182.Ar path . 183.It Ic chgrp Ar grp Ar path 184Change group of file 185.Ar path 186to 187.Ar grp . 188.Ar grp 189must be a numeric GID. 190.It Ic chmod Ar mode Ar path 191Change permissions of file 192.Ar path 193to 194.Ar mode . 195.It Ic chown Ar own Ar path 196Change owner of file 197.Ar path 198to 199.Ar own . 200.Ar own 201must be a numeric UID. 202.It Ic exit 203Quit 204.Nm sftp . 205.It Xo Ic get 206.Op Ar flags 207.Ar remote-path 208.Op Ar local-path 209.Xc 210Retrieve the 211.Ar remote-path 212and store it on the local machine. 213If the local 214path name is not specified, it is given the same name it has on the 215remote machine. 216If the 217.Fl P 218flag is specified, then the file's full permission and access time are 219copied too. 220.It Ic help 221Display help text. 222.It Ic lls Op Ar ls-options Op Ar path 223Display local directory listing of either 224.Ar path 225or current directory if 226.Ar path 227is not specified. 228.It Ic lmkdir Ar path 229Create local directory specified by 230.Ar path . 231.It Ic ln Ar oldpath Ar newpath 232Create a symbolic link from 233.Ar oldpath 234to 235.Ar newpath . 236.It Ic lpwd 237Print local working directory. 238.It Xo Ic ls 239.Op Ar flags 240.Op Ar path 241.Xc 242Display remote directory listing of either 243.Ar path 244or current directory if 245.Ar path 246is not specified. 247If the 248.Fl l 249flag is specified, then display additional details including permissions 250and ownership information. 251.It Ic lumask Ar umask 252Set local umask to 253.Ar umask . 254.It Ic mkdir Ar path 255Create remote directory specified by 256.Ar path . 257.It Ic progress 258Toggle display of progress meter. 259.It Xo Ic put 260.Op Ar flags 261.Ar local-path 262.Op Ar remote-path 263.Xc 264Upload 265.Ar local-path 266and store it on the remote machine. 267If the remote path name is not specified, it is given the same name it has 268on the local machine. 269If the 270.Fl P 271flag is specified, then the file's full permission and access time are 272copied too. 273.It Ic pwd 274Display remote working directory. 275.It Ic quit 276Quit 277.Nm sftp . 278.It Ic rename Ar oldpath Ar newpath 279Rename remote file from 280.Ar oldpath 281to 282.Ar newpath . 283.It Ic rmdir Ar path 284Remove remote directory specified by 285.Ar path . 286.It Ic rm Ar path 287Delete remote file specified by 288.Ar path . 289.It Ic symlink Ar oldpath Ar newpath 290Create a symbolic link from 291.Ar oldpath 292to 293.Ar newpath . 294.It Ic version 295Display the 296.Nm 297protocol version. 298.It Ic \&! Ar command 299Execute 300.Ar command 301in local shell. 302.It Ic \&! 303Escape to local shell. 304.It Ic \&? 305Synonym for help. 306.El 307.Sh SEE ALSO 308.Xr scp 1 , 309.Xr ssh 1 , 310.Xr ssh-add 1 , 311.Xr ssh-keygen 1 , 312.Xr ssh_config 5 , 313.Xr sftp-server 8 , 314.Xr sshd 8 315.Rs 316.%A T. Ylonen 317.%A S. Lehtinen 318.%T "SSH File Transfer Protocol" 319.%N draft-ietf-secsh-filexfer-00.txt 320.%D January 2001 321.%O work in progress material 322.Re 323