Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SFTP(1) 		     General Commands Manual			 SFTP(1)

NAME
     sftp -- OpenSSH secure file transfer

SYNOPSIS
     sftp [-46AaCfNpqrv] [-B buffer_size] [-b batchfile] [-c cipher]
	  [-D sftp_server_command] [-F ssh_config] [-i identity_file]
	  [-J destination] [-l limit] [-o ssh_option] [-P port]
	  [-R num_requests] [-S program] [-s subsystem | sftp_server]
	  [-X sftp_option] destination

DESCRIPTION
     sftp  is a file transfer program, similar to ftp(1), which performs all op-
     erations over an encrypted ssh(1) transport.  It may also use many features
     of ssh, such as public key authentication and compression.

     The destination may be specified either as [user@]host[:path] or as  a  URI
     in the form sftp://[user@]host[:port][/path].

     If the destination includes a path and it is not a directory, sftp will re-
     trieve  files  automatically  if a non-interactive authentication method is
     used; otherwise it will do so after successful interactive authentication.

     If no path is specified, or if the path is a directory, sftp will log in to
     the specified host and enter interactive command mode, changing to the  re-
     mote  directory  if  one  was specified.  An optional trailing slash can be
     used to force the path to be interpreted as a directory.

     Since the destination formats use colon characters to  delimit  host  names
     from  path names or port numbers, IPv6 addresses must be enclosed in square
     brackets to avoid ambiguity.

     The options are as follows:

     -4      Forces sftp to use IPv4 addresses only.

     -6      Forces sftp to use IPv6 addresses only.

     -A      Allows forwarding of ssh-agent(1) to the remote  system.	The  de-
	     fault is not to forward an authentication agent.

     -a      Attempt  to  continue interrupted transfers rather than overwriting
	     existing partial or complete copies of files.  If the partial  con-
	     tents  differ from those being transferred, then the resultant file
	     is likely to be corrupt.

     -B buffer_size
	     Specify the size of the buffer that  sftp	uses  when  transferring
	     files.   Larger  buffers  require	fewer round trips at the cost of
	     higher memory consumption.  The default is 32768 bytes.

     -b batchfile
	     Batch mode reads a series of commands from an input  batchfile  in-
	     stead of stdin.  Since it lacks user interaction, it should be used
	     in  conjunction  with non-interactive authentication to obviate the
	     need to enter a password at connection time (see sshd(8)  and  ssh-
	     keygen(1) for details).

	     A	batchfile  of  `-' may be used to indicate standard input.  sftp
	     will abort if any of the following commands fail: get, put,  reget,
	     reput,  rename,  ln, rm, mkdir, chdir, ls, lchdir, copy, cp, chmod,
	     chown, chgrp, lpwd, df, symlink, and lmkdir.

	     Termination on error can be suppressed on a command by command  ba-
	     sis by prefixing the command with a `-' character (for example, -rm
	     /tmp/blah*).   Echo  of  the command may be suppressed by prefixing
	     the command with a `@' character.	These two prefixes may	be  com-
	     bined in any order, for example -@ls /bsd.

     -C      Enables compression (via ssh's -C flag).

     -c cipher
	     Selects  the cipher to use for encrypting the data transfers.  This
	     option is directly passed to ssh(1).

     -D sftp_server_command
	     Connect directly to a local sftp server (rather than  via	ssh(1)).
	     A	 command   and	 arguments   may   be	specified,  for  example
	     "/path/sftp-server -el debug3".  This option may be useful  in  de-
	     bugging the client and server.

     -F ssh_config
	     Specifies	an  alternative  per-user configuration file for ssh(1).
	     This option is directly passed to ssh(1).

     -f      Requests that files be flushed to disk immediately after  transfer.
	     When  uploading  files,  this feature is only enabled if the server
	     implements the "fsync@openssh.com" extension.

     -i identity_file
	     Selects the file from which the identity (private key)  for  public
	     key  authentication  is  read.   This  option is directly passed to
	     ssh(1).

     -J destination
	     Connect to the target host by first making an  sftp  connection  to
	     the  jump host described by destination and then establishing a TCP
	     forwarding to the ultimate destination from there.   Multiple  jump
	     hops  may	be  specified  separated by comma characters.  This is a
	     shortcut to specify a ProxyJump configuration directive.  This  op-
	     tion is directly passed to ssh(1).

     -l limit
	     Limits the used bandwidth, specified in Kbit/s.

     -N      Disables  quiet  mode, e.g. to override the implicit quiet mode set
	     by the -b flag.

     -o ssh_option
	     Can be used to pass options to ssh in the format used  in	ssh_con-
	     fig(5).   This  is useful for specifying options for which there is
	     no separate sftp command-line flag.  For example, to specify an al-
	     ternate port use: sftp -oPort=24.	For full details of the  options
	     listed below, and their possible values, see ssh_config(5).

		   AddKeysToAgent
		   AddressFamily
		   BatchMode
		   BindAddress
		   BindInterface
		   CASignatureAlgorithms
		   CanonicalDomains
		   CanonicalizeFallbackLocal
		   CanonicalizeHostname
		   CanonicalizeMaxDots
		   CanonicalizePermittedCNAMEs
		   CertificateFile
		   ChannelTimeout
		   CheckHostIP
		   Ciphers
		   ClearAllForwardings
		   Compression
		   ConnectTimeout
		   ConnectionAttempts
		   ControlMaster
		   ControlPath
		   ControlPersist
		   DynamicForward
		   EnableEscapeCommandline
		   EnableSSHKeysign
		   EscapeChar
		   ExitOnForwardFailure
		   FingerprintHash
		   ForkAfterAuthentication
		   ForwardAgent
		   ForwardX11
		   ForwardX11Timeout
		   ForwardX11Trusted
		   GSSAPIAuthentication
		   GSSAPIDelegateCredentials
		   GatewayPorts
		   GlobalKnownHostsFile
		   HashKnownHosts
		   Host
		   HostKeyAlgorithms
		   HostKeyAlias
		   HostbasedAcceptedAlgorithms
		   HostbasedAuthentication
		   Hostname
		   IPQoS
		   IdentitiesOnly
		   IdentityAgent
		   IdentityFile
		   IgnoreUnknown
		   Include
		   KbdInteractiveAuthentication
		   KbdInteractiveDevices
		   KexAlgorithms
		   KnownHostsCommand
		   LocalCommand
		   LocalForward
		   LogLevel
		   LogVerbose
		   MACs
		   NoHostAuthenticationForLocalhost
		   NumberOfPasswordPrompts
		   ObscureKeystrokeTiming
		   PKCS11Provider
		   PasswordAuthentication
		   PermitLocalCommand
		   PermitRemoteOpen
		   Port
		   PreferredAuthentications
		   ProxyCommand
		   ProxyJump
		   ProxyUseFdpass
		   PubkeyAcceptedAlgorithms
		   PubkeyAuthentication
		   RekeyLimit
		   RemoteCommand
		   RemoteForward
		   RequestTTY
		   RequiredRSASize
		   RevokedHostKeys
		   SecurityKeyProvider
		   SendEnv
		   ServerAliveCountMax
		   ServerAliveInterval
		   SessionType
		   SetEnv
		   StdinNull
		   StreamLocalBindMask
		   StreamLocalBindUnlink
		   StrictHostKeyChecking
		   SyslogFacility
		   TCPKeepAlive
		   Tag
		   Tunnel
		   TunnelDevice
		   UpdateHostKeys
		   User
		   UserKnownHostsFile
		   VerifyHostKeyDNS
		   VisualHostKey
		   XAuthLocation

     -P port
	     Specifies the port to connect to on the remote host.

     -p      Preserves	modification  times,  access  times,  and modes from the
	     original files transferred.

     -q      Quiet mode: disables the progress meter as well as warning and  di-
	     agnostic messages from ssh(1).

     -R num_requests
	     Specify  how many requests may be outstanding at any one time.  In-
	     creasing this may slightly improve file transfer speed but will in-
	     crease memory usage.  The default is 64 outstanding requests.

     -r      Recursively copy entire directories when uploading and downloading.
	     Note that sftp does not follow symbolic links  encountered  in  the
	     tree traversal.

     -S program
	     Name  of the program to use for the encrypted connection.	The pro-
	     gram must understand ssh(1) options.

     -s subsystem | sftp_server
	     Specifies the SSH2 subsystem or the path for an sftp server on  the
	     remote  host.   A	path  is useful when the remote sshd(8) does not
	     have an sftp subsystem configured.

     -v      Raise logging level.  This option is also passed to ssh.

     -X sftp_option
	     Specify an option that controls aspects of SFTP protocol behaviour.
	     The valid options are:

	     nrequests=value
		     Controls how many concurrent SFTP read  or  write	requests
		     may  be  in progress at any point in time during a download
		     or upload.  By default 64 requests may  be  active  concur-
		     rently.

	     buffer=value
		     Controls	the  maximum  buffer  size  for  a  single  SFTP
		     read/write operation used during download	or  upload.   By
		     default a 32KB buffer is used.

INTERACTIVE COMMANDS
     Once  in  interactive  mode,  sftp understands a set of commands similar to
     those of ftp(1).  Commands are case insensitive.	Pathnames  that  contain
     spaces must be enclosed in quotes.  Any special characters contained within
     pathnames	that  are recognized by glob(3) must be escaped with backslashes
     (`\').

     bye     Quit sftp.

     cd [path]
	     Change remote directory to path.  If path is  not	specified,  then
	     change directory to the one the session started in.

     chgrp [-h] grp path
	     Change group of file path to grp.	path may contain glob(7) charac-
	     ters and may match multiple files.  grp must be a numeric GID.

	     If  the  -h  flag is specified, then symlinks will not be followed.
	     Note that this is only supported  by  servers  that  implement  the
	     "lsetstat@openssh.com" extension.

     chmod [-h] mode path
	     Change  permissions of file path to mode.	path may contain glob(7)
	     characters and may match multiple files.

	     If the -h flag is specified, then symlinks will  not  be  followed.
	     Note  that  this  is  only  supported by servers that implement the
	     "lsetstat@openssh.com" extension.

     chown [-h] own path
	     Change owner of file path to own.	path may contain glob(7) charac-
	     ters and may match multiple files.  own must be a numeric UID.

	     If the -h flag is specified, then symlinks will  not  be  followed.
	     Note  that  this  is  only  supported by servers that implement the
	     "lsetstat@openssh.com" extension.

     copy oldpath newpath
	     Copy remote file from oldpath to newpath.

	     Note that this is only supported  by  servers  that  implement  the
	     "copy-data" extension.

     cp oldpath newpath
	     Alias to copy command.

     df [-hi] [path]
	     Display  usage  information  for the filesystem holding the current
	     directory (or path if specified).	If the -h flag is specified, the
	     capacity information will be displayed using "human-readable"  suf-
	     fixes.   The -i flag requests display of inode information in addi-
	     tion to capacity information.  This command is  only  supported  on
	     servers that implement the "statvfs@openssh.com" extension.

     exit    Quit sftp.

     get [-afpR] remote-path [local-path]
	     Retrieve the remote-path and store it on the local machine.  If the
	     local  path name is not specified, it is given the same name it has
	     on the remote machine.  remote-path may contain glob(7)  characters
	     and  may match multiple files.  If it does and local-path is speci-
	     fied, then local-path must specify a directory.

	     If the -a flag is specified, then attempt to resume partial  trans-
	     fers of existing files.  Note that resumption assumes that any par-
	     tial copy of the local file matches the remote copy.  If the remote
	     file contents differ from the partial local copy then the resultant
	     file is likely to be corrupt.

	     If the -f flag is specified, then fsync(2) will be called after the
	     file transfer has completed to flush the file to disk.

	     If  the -p flag is specified, then full file permissions and access
	     times are copied too.

	     If the -R flag is specified then directories will be copied  recur-
	     sively.   Note  that  sftp does not follow symbolic links when per-
	     forming recursive transfers.

     help    Display help text.

     lcd [path]
	     Change local directory to path.  If path  is  not	specified,  then
	     change directory to the local user's home directory.

     lls [ls-options [path]]
	     Display local directory listing of either path or current directory
	     if  path  is  not specified.  ls-options may contain any flags sup-
	     ported by the local  system's  ls(1)  command.   path  may  contain
	     glob(7) characters and may match multiple files.

     lmkdir path
	     Create local directory specified by path.

     ln [-s] oldpath newpath
	     Create a link from oldpath to newpath.  If the -s flag is specified
	     the created link is a symbolic link, otherwise it is a hard link.

     lpwd    Print local working directory.

     ls [-1afhlnrSt] [path]
	     Display  a  remote  directory listing of either path or the current
	     directory if path is not specified.  path may contain glob(7) char-
	     acters and may match multiple files.

	     The following flags are recognized and alter the  behaviour  of  ls
	     accordingly:

	     -1      Produce single columnar output.

	     -a      List files beginning with a dot (`.').

	     -f      Do not sort the listing.  The default sort order is lexico-
		     graphical.

	     -h      When  used  with  a  long format option, use unit suffixes:
		     Byte, Kilobyte, Megabyte, Gigabyte, Terabyte, Petabyte, and
		     Exabyte in order to reduce the number of digits to four  or
		     fewer  using  powers  of  2  for  sizes (K=1024, M=1048576,
		     etc.).

	     -l      Display additional details including permissions and owner-
		     ship information.

	     -n      Produce a long listing with user and group information pre-
		     sented numerically.

	     -r      Reverse the sort order of the listing.

	     -S      Sort the listing by file size.

	     -t      Sort the listing by last modification time.

     lumask umask
	     Set local umask to umask.

     mkdir path
	     Create remote directory specified by path.

     progress
	     Toggle display of progress meter.

     put [-afpR] local-path [remote-path]
	     Upload local-path and store it on the remote machine.  If	the  re-
	     mote  path  name is not specified, it is given the same name it has
	     on the local machine.  local-path may  contain  glob(7)  characters
	     and may match multiple files.  If it does and remote-path is speci-
	     fied, then remote-path must specify a directory.

	     If  the -a flag is specified, then attempt to resume partial trans-
	     fers of existing files.  Note that resumption assumes that any par-
	     tial copy of the remote file matches the local copy.  If the  local
	     file  contents differ from the remote local copy then the resultant
	     file is likely to be corrupt.

	     If the -f flag is specified, then a request will  be  sent  to  the
	     server  to call fsync(2) after the file has been transferred.  Note
	     that  this  is  only  supported  by  servers  that  implement   the
	     "fsync@openssh.com" extension.

	     If  the -p flag is specified, then full file permissions and access
	     times are copied too.

	     If the -R flag is specified then directories will be copied  recur-
	     sively.   Note  that  sftp does not follow symbolic links when per-
	     forming recursive transfers.

     pwd     Display remote working directory.

     quit    Quit sftp.

     reget [-fpR] remote-path [local-path]
	     Resume download of remote-path.  Equivalent to get with the -a flag
	     set.

     reput [-fpR] local-path [remote-path]
	     Resume upload of local-path.  Equivalent to put with  the	-a  flag
	     set.

     rename oldpath newpath
	     Rename remote file from oldpath to newpath.

     rm path
	     Delete remote file specified by path.

     rmdir path
	     Remove remote directory specified by path.

     symlink oldpath newpath
	     Create a symbolic link from oldpath to newpath.

     version
	     Display the sftp protocol version.

     !command
	     Execute command in local shell.

     !	     Escape to local shell.

     ?	     Synonym for help.

SEE ALSO
     ftp(1),  ls(1),  scp(1),  ssh(1), ssh-add(1), ssh-keygen(1), ssh_config(5),
     glob(7), sftp-server(8), sshd(8)

     T. Ylonen and S. Lehtinen, SSH File  Transfer  Protocol,  draft-ietf-secsh-
     filexfer-00.txt, January 2001, work in progress material.

FreeBSD ports 15.1		December 6, 2024			 SFTP(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=sftp&sektion=1&manpath=FreeBSD+15.1-RELEASE+and+Ports>

home | help