Skip to content
Follow
Ubuntu Linux

A Guide to SCP: Secure File Transfer on Ubuntu

Richard
Written by
Richard
Jan 17, 2024 Updated Sep 15, 2026 3 min read
How to Enable or Disable Microsoft Defender Cloud Protection
How to Enable or Disable Microsoft Defender Cloud Protection

SCP (Secure Copy Protocol) is a command-line tool that lets you move files and folders safely between computers over a network. It uses SSH (Secure Shell) to encrypt your data while it travels so no one can snoop on your transfer.

Advertisement

Moving a project folder to an Ubuntu 22.04 LTS server or pulling files back to your desktop takes just one command. You can run SCP from your terminal without installing extra software.

⚡ Quick Answer

Use the `scp` command in your Ubuntu terminal to securely transfer files and directories. To copy a file from local to remote, use `scp /path/to/local/file username@remote:/path/to/destination`. For remote to local, reverse the source and destination paths.

Advertisement

SCP command examples

SCP command examples show you how to structure secure file transfers between computers using the terminal. The basic format uses `scp [options] [user@]source_host:file [user@]destination_host:file` to point to the files you want to move. You can add extra flags to change the port or connection method depending on your network setup.

The scp command syntax uses the following format:

scp [OPTION] [user@]SRC_HOST:]file1 [user@]DEST_HOST:]file2
  • OPTION – scp options that specify cipher, SSH configuration, SSH port, limit, recursive copy, etc.
  • [user@]SRC_HOST:]file1 – path to the source file.
  • [user@]DEST_HOST:]:file2 – path to the destination file.
📝Good to KnowLocal files can be specified using an absolute or relative path, while remote file names must include a user and host specification.

The most commonly used options for the SCP command are:

Advertisement
  • -P - Specifies the remote host ssh port.
  • -p - Preserves file modification and access times.
  • -q - Use this option to suppress the progress meter and non-error messages.
  • -C - This option forces scp to compress the data as it is sent to the destination machine.
  • -r - This option tells scp you to copy directories recursively.

Transferring files

Transferring files from your local machine to a remote server requires running the `scp /path/to/local/file username@remote:/path/to/destination` command in your terminal. This tells Ubuntu which file to send and where it needs to land on the destination computer over a secure connection.

scp [options] /path/to/local/file username@remote:/path/to/destination

For example, to transfer a file named `example.txt` from the local machine to a remote machine with the IP address `192.168.0.2`, use the following command:

scp example.txt username@192.168.0.2:/home/username/

To transfer a file from a remote machine to the local machine, use the following command:

scp [options] username@remote:/path/to/file /path/to/destination

For example, to transfer a file named `example.txt` from a remote machine with the IP address `192.168.0.2` to the local machine, use the following command:

Advertisement
scp username@192.168.0.2:/home/username/example.txt /home/localuser/

If you want to save the file under a different name, specify the new file name at the destination. If SSH on the remote host is listening on a port other than the default 22, then you can specify the port using the -P argument:

scp -P 2322 example.txt username@192.168.0.2:/home/username/newName.txt

Transferring directories

Transferring directories and all their contents to another computer requires adding the `-r` flag to your command. You run `scp -r /path/to/local/directory username@remote:/path/to/destination` in your terminal to copy the entire folder recursively in one go.

scp [options] -r /path/to/local/directory username@remote:/path/to/destination

For example, to transfer a directory named `example` from the local machine to a remote machine with the IP address `192.168.0.2`, use the following command:

scp -r example/ username@192.168.0.2:/home/username/

To transfer a directory from a remote machine to the local machine, use the following command:

Advertisement
scp [options] -r username@remote:/path/to/directory /path/to/destination

For example, to transfer a directory named `example` from a remote machine with the IP address `192.168.0.2` to the local machine, use the following command:

scp -r username@192.168.0.2:/home/username/example/ /home/localuser/

That should do it!

Conclusion:

  • Using the SSH protocol, SCP (secure copy) is an essential command-line utility for securely transferring files and directories between networked devices.
  • It provides a secure way to transfer files over a network and is particularly useful for protecting sensitive information on insecure networks.
  • Understanding the SCP command's basic syntax and commonly used options is crucial for efficient usage.
  • The examples demonstrate transferring files and directories between local and remote machines using SCP on Ubuntu Linux.

Was this guide helpful?

Was this helpful?
Richard

About the Author

Richard

Tech Writer, IT Professional

Richard, a writer for Geek Rewind, is a tech enthusiast who loves breaking down complex IT topics into simple, easy-to-understand ideas. With years of hands-on experience in system administration and enterprise IT operations, he’s developed a knack for offering practical tips and solutions. Richard aims to make technology more accessible and actionable. He's deeply committed to the Geek Rewind community, always ready to answer questions and engage in discussions.

Advertisement

📚 Related Tutorials

How to Install WildFly on Ubuntu Linux
Ubuntu Linux How to Install WildFly on Ubuntu Linux
How to Install 1Password on Ubuntu Linux
Ubuntu Linux How to Install 1Password on Ubuntu Linux
How to Setup Let's Encrypt with Apache on Ubuntu Linux
Ubuntu Linux How to Setup Let's Encrypt with Apache on Ubuntu Linux
How to Install Apache on Ubuntu Linux
Ubuntu Linux How to Install Apache on Ubuntu Linux

No comments yet — be the first to share your thoughts!

Leave a Comment

Your email address will not be published. Required fields are marked *