sftp

Synopsis

Description

The sftp utility is an interactive file transfer program with a user
interface similar to ftp(1) that uses the ssh(1) command to create a
secure connection to the server.

sftp implements the SSH File Transfer Protocol as defined in IETF draft-ietf-secsh-filexfer.
There is no relationship between the protocol used by sftp and the
FTP protocol (RFC959) provided by ftp(1).

The first usage format causes sftp to connect to the specified host
and enter an interactive mode. If a username was provided then sftp
tries to log in as the specified user. If a directory is
provided then sftp tries to change the current directory on the server to
the specified directory before entering the interactive mode.

The second usage format retrieves the specified file from the server and
copies it to the specified target file or directory on the client.
If a username is specified sftp tries to log in as the
specified user.

Options

The following options are supported:

-bbatchfile

Batch mode reads a series of commands from an input batchfile instead of stdin. Since it lacks user interaction, it should be used in conjunction with non-interactive authentication. sftp aborts if any of the following commands fail: get, rm, and lmkdir.

-Bbuffer_size

Specifies 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.

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

-ossh_option

Specifies an option to be directly passed to ssh(1).

-Psftp_server path

Executes the specified path as an sftp-server and uses a pipe, rather than an ssh connection, to communicate with it. This option can be useful in debugging the sftp client and server. The -P and -S options are mutually exclusive.

-Rnum_requests

Specifies how many requests can be outstanding at any one time. Increasing this can slightly improve file transfer speed but increases memory usage. The default is 16 outstanding requests.

-ssubsystem | sftp_server

Specifies the SSH2 subsystem or the path for an sftp server on the remote host. A path is useful for using sftp over protocol version 1, or when the remote sshd does not have an sftp subsystem configured.

-Sssh_programpath

Uses the specified program instead of ssh(1) to connect to the sftp server. The -P and -S options are mutually exclusive.

-v

Raises logging level. This option is also passed to ssh(1).

-1

Specifies the use of protocol version 1.

Operands

The following operands are supported:

hostname | user@hostname

The name of the host to which sftp connects and logs into.

INTERACTIVE COMMANDS

Once in interactive mode, sftp understands a set of commands similar to
those of ftp(1). Commands are case insensitive and path names can be enclosed
in quotes if they contain spaces.

bye

Quits sftp.

cdpath

Changes remote directory to path.

chgrpgrp path

Changes group of file path to grp. grp must be a numeric GID.

chmodmode path

Changes permissions of file path to mode.

chownown path

Changes owner of file path to own. own must be a numeric UID.

exit

Quits sftp.

get [flags] remote-path [local-path]

Retrieves the remote-path and stores it on the local machine. If the local path name is not specified, it is specified the same name it has on the remote machine. If the -P flag is specified, then the file's full permission and access time are copied too.

help

Displays help text.

Identical to the ? command.

lcdpath

Changes local directory to path.

lls [ls-options [path]]

Displays local directory listing of either path or current directory if path is not specified.

lmkdirpath

Creates local directory specified by path.

lnoldpathnewpath

Creates a link from oldpath to newpath.

lpwd

Prints local working directory.

ls [flags] [path]

Displays remote directory listing of either path or current directory if path is not specified.

lumaskumask

Sets local umask to umask.

mkdirpath

Creates remote directory specified by path.

put [flags] local-path [local-path]

Uploads local-path and stores it on the remote machine. If the remote path name is not specified, it is specified the same name it has on the local machine. If the -P flag is specified, then the file's full permission and access time are copied too.