Secure data transfer via SCP
In the last article I showed you how to transfer data to a Ubuntu system via FTP. Nowadays FTP is not secure enough for internet use. Therefore I will show you SCP today. SCP is based on the SSH protocol. Therefore you need a user who can also access the server via SSH. As with SSH, you can use SSH keys to establish SCP connections. How to create SSH keys and store them on your server is shown in this article.
Since Linux servers can also be managed from a Windows client, I will also show you the free program WinSCP in the course of this article, with which you can also transfer data from Windows to Linux servers via SCP.
Since SCP or SSH as a client is a fixed part of every Linux distribution, you don’t need any further preparation on the client side. On the server side, depending on the distribution, you may need to install the SSH server service.
As before any installation, you should update your server to the latest version. For operating systems based on Debian (such as Ubuntu or Kubuntu), use the following command:
apt -y update && apt -y upgrade && apt -y dist-upgrade
For CentOS or Red Hat or similar distributions YUM is used as package manager. Therefore, the command is as follows:
To update your Fedora system, use the following command.
dnf update && dnf upgrade
Then start the installation with the following command:
Debian / Ubuntu
apt -y install openssh-server
CentOS / RHEL
yum install openssh-server
dnf install openssh-server
Establishing a SSH connection
To test if the setup was successful, connect to your server via SSH. Open a terminal from your Linux or Apple client and execute the following command:
If you are using an SSH key, enter the password for your key now. Otherwise, the password for the user on the remote computer must be specified.
If everything is set up, the console of the remote computer should now be visible. If not, check your firewall settings. SSH requires port 22/tcp. You can also check the config of the SSH server and make sure that your user has the appropriate permissions.
Once you have successfully established the connection, you can close it again. Simply enter the command exit.
Transfer a file via SCP
For testing purposes, it is best to create a test file.
To transfer the file test.file to the other server use the following command:
scp /path/to/file <benutzername>@<IPorDomainofServer>:/Path/to/destionationfolder/
scp /test.file email@example.com:/root/secret/test.file
The file is now transferred to /root/secret on the server with IP 10.10.0.12.
If you want to download a file from a remote computer, you can also use SCP. The structure of the command has to be reversed.
scp firstname.lastname@example.org:/root/secret/test.file /root/lokalsecrets/test.file
Make sure that the directories already exist.
You can also use SCP to transfer files from one server to another, from your client.
The syntax will look like this.
scp <username>@<IPorDomainofServer>:/path/to/file <username>@<IPorDomainofServer>:/Path/to/destination
scp email@example.com:/test.datei firstname.lastname@example.org/root/secret/test.file
If you use Windows 10 as client (from version 16.07) you can install the Linux subsystem and get a Ubuntu Bash including APT. With this you can use the syntax already shown.
Right-click “Start”, then on “Programs and Features” or for version 1703 “Apps and Features” and then on “Programs and Features”, then on “Activate or deactivate Windows features”. In the now open window, look for “Windows subsystem for Linux (beta)”. Afterwards the developer mode must be activated under Start -> Settings -> Update and security -> For developers. After the installation run cmd and type the command bash.
Then confirm the installation with Y and type in a user name and password after a short wait.
If you are using an older version of Windows, you can take a look at the WinSCP program. You can find the current release here.
The setup of the tool is quite simple. Select Total Commander mode during installation. So on the left side of the window you will see your Local Folder Structure and on the right side the one of the server you have connected to. Files can be moved back and forth via Drag ‘n Drop and renamed, executed or deleted with a right click.
SCP is fairly quick to learn and reliably transmits even large amounts of data securely over the Internet. SCP is unfortunately very Linux-heavy – that means – Windows as client is no problem, but as soon as you use Windows as server, it becomes very difficult. As an alternative you can use WebDAV for example. I’ll show you how this works in this article. So if you work with different operating systems, you should take a look at both techniques.