25th Anniversary Savings | 25% Off Dedicated Servers*Shop Now
25th Anniversary Savings | 25% Off VPS Hosting* †††Shop Now
Limited Inventory: High-Performance AMD-Powered Servers Now Available.* Shop Now >
Dedicated Hosting Deals | From $99/moShop Now

How to Securely Transfer Files via rsync and SSH on Linux

Reading Time: 2 minutes

Pre-Flight Check

  • These instructions are intended specifically for transferring files between servers via rsync and SSH on Linux.
  • I’ll be working from a Liquid Web Core Managed CentOS 7 server, and I’ll be logged in as root.

Use These Commands to Securely Download From a Server

Standard SSH Port:

rsync -avHe ssh user@server:/path/to/file /home/user/path/to/file

  • user: The username of the remote user through which you’ll be logging into the target (remote) server.
  • server: The hostname or IP address of the target (remote) server.
  • /path/to/file: The path to the file that needs to be downloaded from the target (remote) server, where file is the file name.
  • /home/user/path/to/file: The local path where you would like to store the file that is downloaded from the target (remote) server, where file is the file name.

Example:

rsync -avHe ssh adam@web01.adamsserver.com:/home/adam/testfile1 /home/localuser/testfile1

Alternate SSH Port:

rsync -avHPe "ssh -pPORTNUMBER" user@server:/path/to/file /home/user/path/to/file

  • PORTNUMBER: The port number for SSH on the target (remote) server.
  • user: The username of the remote user through which you’ll be logging into the target (remote) server.
  • server: The hostname or IP address of the target (remote) server.
  • /path/to/file: The path to the file that needs to be downloaded from the target (remote) server, where file is the file name.
  • /home/user/path/to/file: The local path where you would like to store the file that is downloaded from the target (remote) server, where file is the file name.

Example:

rsync -avHPe "ssh -p1337" adam@web01.adamsserver.com:/home/adam/testfile1 /home/localuser/testfile1

Use These Commands to Securely Upload To a Server

Standard SSH Port:

rsync -avH /home/user/path/to/file -e ssh user@server:/path/to/file

  • /home/user/path/to/file: The local path where the file that will be uploaded to the target (remote) server exists, where file is the file name.
  • user: The username of the remote user through which you’ll be logging into the target (remote) server.
  • server: The hostname or IP address of the target (remote) server.
  • /path/to/file: The remote path for the file that will be uploaded to the target (remote) server, where file is the file name.

Example:

rsync -avH /home/localuser/testfile1 -e ssh adam@web01.adamsserver.com:/home/adam/testfile1

Alternate SSH Port:

rsync -avHPe "ssh -pPORTNUMBER" /home/user/path/to/file -e ssh user@server:/path/to/file

  • PORTNUMBER: The port number for SSH on the target (remote) server.
  • /home/user/path/to/file: The local path where the file that will be uploaded to the target (remote) server exists, where file is the file name.
  • user: The username of the remote user through which you’ll be logging into the target (remote) server.
  • server: The hostname or IP address of the target (remote) server.
  • /path/to/file: The remote path for the file that will be uploaded to the target (remote) server, where file is the file name.

Example:

rsync -avHPe "ssh -pPORTNUMBER" /home/localuser/testfile1 -e ssh adam@web01.adamsserver.com:/home/adam/testfile1

About the Author: J. Mays

As a previous contributor, JMays shares his insight with our Knowledge Base center. In our Knowledge Base, you'll be able to find how-to articles on Ubuntu, CentOS, Fedora and much more!

Latest Articles

What Is Umask and How to Use it Effectively

Read Article

Troubleshooting: Too Many Redirects

Read Article

What Is a Time Series Database? How It Works & Use Cases

Read Article

What Is a Time Series Database? How It Works & Use Cases

Read Article

Top 10 Web Server Security Best Practices

Read Article