Usage

Name

push-sftp – push secure file transfer program Push SFTP

Synopsis

push-sftp [-DIvX] [--help] [--prompt] [-a=SOCKET] 
        [-b=SCRIPT] [-c=CIPHER] [-d=PATH] [-h=HOSTNAME] 
        [-i=FILE] [-k=KEX] [-l=LEVEL] [-m=MAC] 
        [-p=PORT] [-r=PATH] [-s=LEVEL] [-u=USER] 
        [-x=ALGO] [-z=TYPE] [COMMAND]
push-sftp user@host [COMMAND]

Description

The push-sftp utility is an interactive file transfer program with a user interface similar to sftp. It has an additional command, “push”, that will split files into separate parts and upload them in parallel. This is a technique that can increase the performance of transfers, especially on latent networks.

push-sftp implements the SSH File Transfer Protocol as defined in draft-ietf-secsh-filexfer.

The command creates an SFTP connection to the host. If no COMMAND is provided, it enters an interactive mode, logging in the user provided through any mechanism it can determine through the supplied options, falling back to prompting the user for their password.

Options

The following options are supported:

-h hostname

The hostname to connect to. May also be provided in user@hostname format with no command switch.

-u username

The username to use on the connection. It may also be provided in user@hostname format with no switch.

-p port

The port number on which the service is listening

-i identity file

A path to an SSH private key to use for public key authentication.

-b batchfile

Batch mode reads a series of commands from an input batchfile instead of stdin. This lacks user interaction, so using this with a non-interactive authentication method is advised. Processing will abort if any error occurs.

-c cipher

Set the preferred cipher to use for this connection. If either side does not support the cipher, the connection fails.

-k key exchange

Set the preferred key exchange to use for the connection. The connection fails if either side does not support the key exchange mechanism.

-m mac

Set the preferred mac to use for the connection. The connection fails if either side does not support the mac.

-z compression

Set the preferred compression to use for the connection. The connection fails if either side does not support the compression algorithm provided.

-x public key algorithm

Set the preferred public key algorithm name for the server’s host key. The connection fails if the server does not have a host key of this type.

-l level

Set the level of console logging. This can be a value of INFO, DEBUG or TRACE.

-s security level

Set the security level for the connection. The security level determines what algorithms are advertised to the remote server during key exchange. Choose from WEAK, STRONG, or PARANOID for varying levels of security strength.

-r remote directory

The path to use as the remote working directory.

-d local directory

The path to use as the local working directory.

-a agent socket

The path to the sshagent socket to perform public key authentication with the help of sshagent.

-D

Disable any attempt to connect to an sshagent for public key authentication.

-X

Print out full stack traces of Java exceptions.

-I

Ignore known identity locations when attempting public key authentication. Known identities are stored under the users .ssh directory and will be named id_rsa, id_ed25519, id_ed448 and id_ecdsa.

-v

Print out the program version.

Interactive Commands

push-sftp understands these commands when running in batch or interactive mode.

bye, quit, exit

Quits push-sftp

cd path

Changes the remote directory to the supplied path.

lcd path

Change the local working directory.

pwd

Prints out the remote working directory.

lpwd

Prints out the local working directory.

help

Prints out help information.

info

Print information about the current connection, such as active cipher, mac, and key exchange. Some debugging information will also be displayed if you have performed any transfers.

ls [-la]

List the contents of the remote working directory.

The ls command supports the following options.

-a

Include files beginning with . (hidden files).

-l

Print the long name format, which includes permissions and ownership information.

lls [-la]

List the contents of the local working directory. This command supports the same arguments as ls.

mkdir path

Create the remote directory specified by path.

rm path

Delete the file specified by path.

rmdir path

Delete the directory specified by path.

umask umask

Set the umask value on the SFTP client. This is applied to new files and directories created by the client on the remote server.

chgrp group path

Change the group ownership on path.

chown user path

Change the user ownership on path.

chmod mode path

Change the permissions of path to mode.

put [-T] [-a requests] [-b blocksize] local [path]

Uploads local to the remote working directory. If path is provided, it overrides the working directory for path.

-T

Output the exact timing of the transfer.

-a requests

Change the number of async requests that are used to optimize the transfer.

-b blocksize

Override the block size used to send data to the remote server.

get [-baT] remote

Downloads the remote path from the server to the local working directory. This command also supports the same flags as the put command.

update

Check for updates for this application.

push [-MvGFBT] [] [-d digest] [-r path] [-a requests] [-b blocksize] files..

Split up each file and upload in parallel over multiple SFTP connections.

-T

Output the exact timing of the transfer.

-M

Multiplex transfers over a single connection.

-c chunks

Set the number of chunks; each is sent over a separate connection. Defaults to 3.

-v

Verify the integrity of the remote file after transfer using SFTP file hashing extensions

-d digest

Sets the digest algorithm to use when performing integrity verification. Supported values are md5, sha1, sha256 and sha512. The default hash algorithm is md5.

-G

If the remote server does not support file hashing extensions, ignore the failure if integrity checking is performed.

-r remote path

Upload the files to an alternative remote directory.

-B

Generate verbose output.

-a requests

Change the number of async requests that are used to optimize the transfer.

-b blocksize

Override the block size used to send data to the remote server.