In this article, you will learn how to transfer files over SSH by using ‘scp’. If you need to transfer files over a network, this is one way to do so. There are numerous other options to transfer files over a network, and this is just one of them. Feel free to leave a comment sharing other ways you use to transfer files over SSH.
We have had quite a number of articles about SSH. It stands for “Secure Shell” and you can click to find a collection of SSH articles. If you’re entirely new to SSH, you’d probably enjoy learning how to install/enable SSH. As mentioned, there have been a bunch of articles covering this subject.
Today, we’ll be using ‘scp’, which defines itself as:
OpenSSH secure file copy
It shares quite a bit of similarity with the ‘cp’ command, a command we oddly haven’t covered yet. That’s not too important. We’ll eventually get to that article and maybe remember to link back to this one. What’s important to know is that it shares some similar features and syntax.
So, today we’re going to use ‘scp’ to transfer files over SSH, over a network. It’s a pretty good skill to know, as copying files is probably the 2nd most frequently used feature over SSH, with device management being first. At least it’d be 2nd most for me, I’m not sure what you all do with it.
Transfer Files Over SSH with scp:
This article requires an open terminal, like many other articles on this site. If you don’t know how to open the terminal, you can do so with your keyboard – just press
You’re also going to need a device you can SSH into, and I can’t really help you with that. You can always install OpenSSH on your desktop and practice by using SSH over localhost.
Now, with your terminal open, it’s time to transfer a file. The very most basic command to copy a file to the remote server would be:
1 | scp <file> user@server:/path/to/folder/ |
You can also copy multiple files to the remote server:
1 | scp <file_1> <file_1> user@server:/path/to/folder/ |
You can copy all files from the directory you’re in (on the local device) easily enough. It’s just our beloved asterisk.
1 | scp * user@server:/path/to/folder/ |
If you want to copy the files from the folder in AND the files from the folders in that directory (recursively), then the command just requires a -r flag.
1 | scp -r * user@server:/path/to/folder/ |
You can actually go the other direction. If you want to transfer remote files to your local device, then you’d be looking at this command:
1 | scp user@server:/path/to/file/<file>.txt <new_file>.txt |
From that, you can use the above commands, extrapolate if you will, for ways to transfer the file to your local device from the remote device. It’s not terribly difficult, and ‘scp’ is something everyone should know if they’re working with remote computers on a regular basis.
By the way, setting up SSH on your computer isn’t a bad idea. Sometimes a malfunctioning computer can be accessed via SSH when nothing else will work. I have SSH installed (and secured) on pretty much every computer in the house.
Closure:
See? Now you know how to use ‘scp’ to copy files over a network via SSH. It’s a pretty awesome skill to have and one you may need until the end of time, or at least as long as Linux lasts as an operating system – which should be quite a long time. So, it’s in your best interests to learn how to use ‘scp’ with at least a basic level of skill.
Thanks for reading! If you want to help, or if the site has helped you, you can donate, register to help, write an article, or buy inexpensive hosting to start your own site. If you scroll down, you can sign up for the newsletter, vote for the article, and comment.