- 4 Ways to Transfer Files Between Remote and Local Systems Over SSH
- Method 1: Use scp command to copy files over SSH
- Copy files from the remote machine to your local machine
- Copy files from your local machine to the remote machine
- You can copy directories too
- Method 2: Use rsync to copy files and directories over SSH
- Copy files from the remote machine to your local machine
- Copy files from your local machine to the remote machine
- How about copying directories with rsync?
- Method 3: Using SSHFS to access files from remote system over SSH
- Method 4: Use a GUI-based SFTP client for transferring files between remote systems
- Which method do you prefer?
- How to transfer a file from windows to linux Server? [A Definitive Guide]
- Steps to Transfer a File From Windows to Linux Server
- Conclusion
4 Ways to Transfer Files Between Remote and Local Systems Over SSH
From legacy scp to modern rsync. From the unconventional sshfs to the GUI convenience of FileZilla. Learn different ways for copying files over SSH.
Sooner or later, you’ll find yourself in a situation where you have to upload the file to the remote server over SSH or copy a file from it.
There are various ways you can transfer files over SSH. I am going to discuss the following methods here:
- scp: Legacy command which is being deprecated
- rsync: Popular command for file synchronization
- sshfs: Mounting remote directory over SSH
- sftp clients: GUI tool for accessing file over SFTP
For a successful file transfer over SSH, you need to
- have SSH access between the two machines
- know the username and password on the remote machine
- know the IP address or hostname (on the same subnet) of the remote machine
With that aside, let’s see the methods for copying files between remote systems via SSH.
Method 1: Use scp command to copy files over SSH
I have read that scp is going to be deprecated. Still, it is my favorite tool for transferring files between systems over SSH. Why? Because its syntax is similar to the cp command.
Let’s see how to use the scp command.
Copy files from the remote machine to your local machine
Here’s the scenario. You want to copy files from the remote Linux system to the currently logged in system.
Here’s a generic syntax that copies the file from the home directory of the user on the remote system to the current directory of your locally logged in system.
scp [email protected]_address:/home/username/filename .
Do you see the similarity with the cp command? It’s almost the same except that you have to specify username and ip address with colon (:).
Now, let me show you a real-world example of this command.
In the example above, I copied the file remote.txt from the /home/abhishek/my_file directory on the remote system to the current directory of the local machine.
This should give you a hint that you should know the exact location of the file on the remote system. The tab completion does not work on remote systems.
Copy files from your local machine to the remote machine
The scenario is slightly changed here. In this one, you are sending a local file to the remote system over SSH using scp.
This is a generic syntax which will copy the filename to the home directory of username on the remote system.
In the above example, I copied local.txt file from the current directory to the home directory of the user abhishek on the remote system.
Then I logged into the remote system to show that the file has actually been copied.
You can copy directories too
Remember I told you I like scp because of its similarity with the cp command?
Like cp command, you can also use scp to copy directory over SSH. The syntax is similar to the cp command too. You just have to use the -r option.
scp -r source_dir [email protected]_address:/home/username/target_dir
You can do a lot more with it. Read some more examples of scp command in this tutorial:
Method 2: Use rsync to copy files and directories over SSH
Since scp is being deprecated, rsync is the next best tool for copying files between remote system over SSH. Actually, it is better than scp in many terms.
The command syntax is the same as scp. Older versions of rsync had to use rsync -e ssh but that’s not the case anymore.
Copy files from the remote machine to your local machine
Let’s say you want to copy a file from the home directory of the user on the remote system to the current directory of your locally logged in system.
rsync [email protected]_address:/home/username/filename .
Let’s take the same example you saw with scp. I am copying the file remote.txt from the /home/abhishek/my_file directory on the remote system to the current directory of the local machine.
Copy files from your local machine to the remote machine
Here is a generic syntax which will copy the file to the home directory of username on the remote system.
Time to see the real world example. I am copying local.txt file from the current directory to the home directory of the user abhishek on the remote system.
How about copying directories with rsync?
It’s the same. Just use -r option with rsync to copy entire directory over SSH between remote systems.
rsync -r source_dir [email protected]_address:/home/username/target_dir
Take a look at this example. I copy the entire my_file directory from the remote system to the local system.
rsync is a versatile tool. It is essentially a tool for ‘recursively syncing’ the contents between two directories and quite popular for making automated backups.
Method 3: Using SSHFS to access files from remote system over SSH
There is also SSHFS (SSH Filesystem) that can be used to access remote files and directories. However, this is not very convenient just for copying files.
In this method, you mount the remote directory on your local system. Once mounted, you can copy files between the mounted directory and the local system.
You may need to install sshfs on your local system first using your distribution’s package manager.
On Debian and Ubuntu, you may use the following command:
Once you have sshfs installed on your system, you can use it to mount the remote directory. It would be better to create a dedicated directory for the mount point.
Now mount the desired directory on the remote machine in this fashion:
sshfs [email protected]_address:path_to_dir mount_dir
Once it is mounted, you can copy files into this directory or from this directory as if it is on your local machine itself.
Remember that you have mounted this file. Once your work is done, you should also unmount it:
Here’s an example where I mounted the my_file directory from the remote system to the remote_dir directory on the local system. I copied the remote.txt file to the local system and then unmounted the directory.
Method 4: Use a GUI-based SFTP client for transferring files between remote systems
As the last resort, you can use an FTP client for transferring files between remote and local systems.
FileZilla is one of the most popular cross-platform FTP client. You can easily install on your local system.
Once installed, go to File->Site Manager and add the remote system details like IP address, SSH port number, username and password.
Once you connect, you can see a split window view that shows the local filesystem on the left and the remote filesystem on the right.
To transfer the file, drag and drop files from left to right or right to left. A progress bar appears at the bottom.
Which method do you prefer?
Alright! I showed various command line and GUI methods that can be used for copying files over SSH.
Now it is up to you to decide which method to use here. Do comment your preferred method for transferring files over SSH.
How to transfer a file from windows to linux Server? [A Definitive Guide]
Are you looking to move your data from windows to a linux server? This guide will help you to transfer a file from windows to Linux server.
List of content you will read in this article:
If you have a connected, working, and tested Linux Server and you are looking to transfer files from windows to a Linux server. You can do that; however, it is not as simple as you think. It is well known that working with servers, especially those running a command line interface, can be somewhat burdensome.
In this article, we will help you to upload local files from a Windows to a Linux VPS, whereas if you want to transfer data from a Windows pc to a Windows server, you can read this blog post.
Steps to Transfer a File From Windows to Linux Server
To understand the concept, The Windows PC you are transferring the files from will be referred to as the source, and the Linux Server you are transferring the files to will be referred to as the destination. For demonstration purposes, we have created a file on the desktop named “test.txt”.
Follow these simple steps to transfer files from a Windows to Linux server:
Step 1: Open “Run” by pressing the Windows key +R on your keyboard simultaneously or by typing run into the search bar.
Step 2: Type cmd in the open run window and press Enter.
Step 3: Enter the file’s directory by typing cd followed by the file path. (In this case, the file is on the desktop, so we write cd desktop).
Step 4: Use the “SCP” command in the same format as shown below to upload the file.
SCP filename.extension username@serveraddress:filepath
- filename.extension: It is the name of the file and its extension (test.txt in our case)
- username: It is the username used to connect to VPS (root in our case)
- serveraddress: It is the IP address of the VPS or server
- filepath: It is the path where you want the file to be copied to (/etc/ssh in our case)
Step 5: If this is your first time connecting to the server, Windows will ask you to accept the security alert. Please do so.
Step 6: Next, you will have to enter the destination server’s password.
And that’s it! Once the correct password has been entered, your file will be uploaded.
To verify that file is transferred, open putty and connect to the destination server. Use “Nano editor” or “vi” editor to open the file.
As can be seen in the following image, the file has been uploaded and is available on the server.
There is also a popular way to transfer files from windows to Linux server or vice versa with the help of WinSCP software. this is an alternate or easy solutions to complete your job.
Conclusion
Unfortunately, there is no simple way than WCP Software for drag-and-drop that we suggested above to upload/transfer files from a Windows VPS server to a Linux server. To be able to do or manage the virtual private server, you will need to learn how to use the command-line interface. Nevertheless, once you know how to do it, it is not much more complex than using your PC for your typical daily tasks. We hope that with the help of this article, you were able to help with the guideline that you are looking for. If you have any questions or suggestions, please leave them in the comment section listed below.
People Are Also Reading: