Linux and Unix scp command

Quick links

About scp
Syntax
Examples
Related commands
Linux and Unix main page

About scp

scp copies files over a secure, encrypted network connection.

Description

scp copies files securely between hosts on a network. It uses ssh for data transfer, and uses the same authentication and provides the same security as ssh. Unlike rcp, scp will ask for passwords or passphrases if they are needed for authentication.

File names may contain a user and host specification to indicate that the file is to be copied to/from that host. Local file names can be made explicit using absolute or relative pathnames to avoid scp treating file names containing ‘:’ as host specifiers. Copies between two remote hosts are also permitted.

Syntax

scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] 
    [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 ... 
    [[user@]host2:]file2

Options

-1 Forces scp to use protocol 1.
-2 Forces scp to use protocol 2.
-3 Copies between two remote hosts are transferred through the local host. Without this option the data is copied directly between the two remote hosts. This option disables the progress meter.
-4 Forces scp to use IPv4 addresses only.
-6 Forces scp to use IPv6 addresses only.
-B Selects batch mode (prevents asking for passwords or passphrases).
-C Compression enable. Passes the -C flag to ssh to enable compression.
-c cipher Selects the cipher to use for encrypting the data transfer. This option is directly passed to ssh.
-F ssh_config Specifies an alternative per-user configuration file for ssh. This option is directly passed to ssh.
-i identity_file Selects the file from which the identity (private key) for RSA authentication is read. This option is directly passed to ssh.
-l limit Limits the used bandwidth, specified in Kbit/s.
-o ssh_option Can be used to pass options to ssh in the format used in ssh_config. This is useful for specifying options for which there is no separate scp command-line flag. Each of the following options is fully documented in the system-specific ssh distribution. Valid options are:

AddressFamily
BatchMode
BindAddress
ChallengeResponseAuthentication
CheckHostIP
Cipher
Ciphers
Compression
CompressionLevel
ConnectionAttempts
ConnectionTimeout
GlobalKnownHostsFile
GSSAPIAuthentication
GSSAPIDelegateCredentials
Host
HostbasedAuthentication
HostKeyAlgorithms
HostKeyAlias
HostName
IdentityFile
IdentitiesOnly
LogLevel
MACs
NoHostAuthenticationForLocalhost
NumberOfPasswordPrompts
PasswordAuthentication
Port
PreferredAuthentications
Protocol
ProxyCommand
PubkeyAuthentication
RhostsRSAAuthentication
RSAAuthentication
ServerAliveInterval
ServerAliveCountMax
SmartcardDevice
StrictHostKeyChecking
TCPKeepAlive
UsePrivilegedPort
User
UserKnownHostsFile
VerifyHostKeyDNS
-P port Specifies the port to connect to on the remote host. Note that this option is written with a capital 'P', because -p is already reserved for preserving the times and modes of the file in rcp.
-p Preserves modification times, access times, and modes from the original file.
-q Disables the progress meter.
-r Recursively copy entire directories.
-S program Name of program to use for the encrypted connection. The program must understand ssh options.
-v Verbose mode. Causes scp and ssh to print debugging messages about their progress. This is helpful in debugging connection, authentication, and configuration problems.

Examples

scp myfile.txt hope@computerhope: myfile.txt

The above example would copy the file myfile.txt to the computerhope server under the name hope.

scp remote:/home/hope/*.

Copy files in the remote machine in the /home/hope directory to your local computer.

Related commands

rcp
sftp
slogin