A Guide to SCP: Secure File Transfer on Ubuntu
SCP (Secure Copy) securely moves files and folders between computers over a network using a command-line tool. It works by using SSH to encrypt your data as it travels, keeping it safe.
This makes SCP a must-have tool for anyone using Ubuntu who needs to transfer important information. You can use it to copy files from your computer to a remote server, or from a server back to your computer.
For instance, you might use SCP to send a large project folder to a Ubuntu 22.04 LTS development server.
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.
SCP command examples
The SCP command makes SCP file transfer on Ubuntu simple by letting you securely copy files between computers. The basic format for the SCP command is `scp [options] [user@]source_host:file [user@]destination_host:file`. You can add options to change how the transfer works, like the connection method or port.
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.
The most commonly used options for the SCP command are:
-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 forcesscpto compress the data as it is sent to the destination machine.-r– This option tellsscpyou to copy directories recursively.
Transferring files
Sending a single file from your computer to another is easy with the SCP command. To move a local file to a remote computer, use a command like `scp [options] /path/to/local/file username@remote:/path/to/destination`. This tells SCP exactly which file to send and where it should end up on the other machine.
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:
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
Copying a whole folder and everything inside it to another computer is simple with SCP. Use the `-r` option to tell SCP to copy recursively, grabbing the directory and all its contents. The command to complete an SCP transfer of a directory looks like `scp [options] -r /path/to/local/directory username@remote:/path/to/destination`.
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:
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?
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.
No comments yet — be the first to share your thoughts!