Oct 13, 2023 4 min read

How to Use SCP Command to Securely Transfer Files

Use SCP Command to Securely Transfer Files with our step-by-step tutorial. It is a tool used to securely copy files between two locations.

Use SCP Command to Securely Transfer Files
Table of Contents

Introduction

Before we begin talking about how to use the SCP command to securely transfer files, let’s briefly understand - What is SCP?

SCP, which is the abbreviation for Secure Copy, is a command line that enables users to securely duplicate files between two locations. The files which are transferred are encrypted, making it a lot safer alternative.

This tutorial will help you through the steps involved in using SCP to securely transfer files from one machine to another.

Advantages of SCP

  1. Secure: SCP uses encryption to transfer files, ensuring data confidentiality.
  2. Authenticity: SCP verifies the identity of both the sender and receiver, preventing unauthorized access.
  3. Simplicity: SCP has a straightforward command-line interface, making it easy to use.
  4. Efficiency: SCP's design allows for efficient file transfer, minimizing time and bandwidth usage.
  5. Compatibility: SCP is compatible with various operating systems and supports both local and remote file transfers.

SCP Command Syntax

In order to understand the use of the scp command,  review the basic syntax:

scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2
  • OPTION - scp options such as cipher, ssh configuration, ssh port, limit, recursive copy…etc.
  • [user@]SRC_HOST:]file1 - Source file
  • [user@]DEST_HOST:]file2 - Destination file

The files which are locally available need to be specified with an absolute or relative path, while the user and host specification is required for remote file names.

There are a number of options provided by scp, the most frequently used are:

  • -P - Specifies the remote host ssh port.
  • -p - Preserves files modification and access times.
  • -q - Suppresses the progress meter and non-error messages.
  • -C - This option forces scp to compresses the data as it is.
  • -r - To copy directories recursively.

Prerequisites

There are certain things that one should be aware of before starting with the tutorial.

The scp command is dependent on the ssh command for transferring data, thus requiring an ssh key/password for authentication.

The colon : is what makes scp to identify local and remote locations.

You should be having read permission on the source file and write permission on the target file if you want to copy files.

scp tends to overwrite files with the same name without caution, therefore be cautious while copying files. It is recommended to run scp the command on a screen or tmux session.

SCP for Copying Files & Directories between Two Systems

1) Copying a Local File to a Remote system using scp command

Use the following command:

scp file.txt [email protected]:/remote/directory

file.txt is the name of the file we wish to copy, remote_username the user on the remote server &  30.30.0.1 is the IP address. /remote/directory/ is the location to which we wish to copy the file, In case a location is not specified, scp would copy the file to the remote user home directory.

After that, enter the password, post which the transfer will commence.

Output
[email protected]'s password:
file.txt                             100%    0     0.0KB/s   00:00

In case you omit the filename from the destination, the original filename is retained. You need to specify a filename with which you wish to rename the file.

scp file.txt [email protected]:/remote/directory/newfilename.txt

You can specify the port using -P argument in case SSH is listening on a port other than the default 22.

scp -P 2322 file.txt [email protected]:/remote/directory

For copying a directory, the procedure is more or less the same, only difference being the addition of the -r flag for recursive.

You can use the -r option to copy a directory from a local system to a remote system.

scp -r /local/directory [email protected]:/remote/directory

2) Copying a remote file to a local system using the scp Command

The concept remains the same, it's just that the remote location would now be treated as the source and the local system the destination.

You can run the following command to copy a file named file.txt from a remote server with IP 30.30.0.1:

scp [email protected]:/remote/file.txt /local/directory

After that, enter the user password, in case you haven't set a passwordless SSH login.

3) Copying a file between two remote systems using the scp command

One of the salient features of scp is the fact that one need not log in to one of the servers to transfer files between remote machines.

You can use the following command to file /files/file.txt from the remote host host1.com to the directory /files on the remote host host2.com.

scp [email protected]:/files/file.txt [email protected]:/files

Once you enter the passwords for both the remote accounts, the transfer will proceed securely.

You can use the -3 option to route the traffic through the machine on which the command is issued.

scp -3 [email protected]:/files/file.txt [email protected]:/files

FAQs to Use SCP Command to Securely Transfer Files

Is SCP only for copying files locally? 

No, SCP can be used to copy files both locally and remotely across different systems or networks.

Is SCP secure? 

Yes, SCP employs encryption to secure file transfers, ensuring the confidentiality and integrity of the data being copied.

Can SCP transfer directories? 

Yes, SCP can copy entire directories by using the -r flag, which recursively transfers all files and subdirectories within the specified directory.

Can SCP preserve file permissions and timestamps? 

Yes, SCP can preserve file permissions and timestamps by using the -p flag during the transfer.

Can SCP resume interrupted transfers? 

No, SCP does not support resuming interrupted transfers by default. However, tools like rsync can be used in conjunction with SCP to achieve this functionality.

What is the difference between SCP and SFTP? 

While both SCP and SFTP serve similar purposes, SCP focuses on securely copying files, while SFTP provides a more comprehensive set of remote file system operations.

Are there graphical user interfaces (GUI) available for SCP? 

Yes, there are several GUI-based SCP clients available that provide a user-friendly interface, simplifying file transfers for those who prefer graphical tools.

Conclusion

We hope this detailed tutorial helped you understand how to Use SCP Command to Securely Transfer Files.

If you have any queries, please leave a comment below, and we’ll be happy to respond to them for sure.

Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to DevOps Tutorials - VegaStack.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.