How to use SFTP to securely transfer files over a remote server
The SSH file transfer protocol is a network protocol that allows users to view, pass, and navigate files through an encrypted data stream (also known as the Secure File Transfer Protocol).
This tutorial will walk you through the process of moving content between two servers in a safe manner.
You will be needing
- SSH access
- Basic skills for working on Linux
Connecting to a server using SFTP
To make sure that you will be able to access the server with SFTP you can first try to establish an SSH connection.
ssh user1@X.X.X.X (where X.X.X.X is the IP address of the remote server).
Instead of an IP address, a hostname may be used.
If the link is successful, you should have no problems. In this tutorial, we’ll be using the default SFTP client that comes with the server.
sftp user1@X.X.X.X
This will establish a connection in default SSH port22. Due to security reasons if the port is configured with a non default SSH port, you can use the oPort option to specify the exact port:
sftp -oPort=2222 user1@X.X.X.X
Depending on the remote server’s SSH authentication procedure, you should be prompted to enter the password for user1 or the password for the SSH private key loaded on the connecting server.
The command prompt is turned on when the link is connected:
sftp>
Transferring Files with SFTP
You can use the pwd and lpwd commands to find out which are the working folders on the current and remote server:
1
2 3 4 |
sftp> pwd
Remote working directory: /home/user1 sftp> lpwd Local working directory: /home/currentuser |
Using the following command to download a file with the get command.
1 | sftp> get testfile.txt |
The display should look something like this:
1
2 |
Fetching /home/user1/testfile.txt to testfile.txt
/home/user1/testfile.txt 100% 3209 3.1KB/s 00:00 |
We can initiate folder download using the -r option:
1 | sftp> get -r testfolder |
The corresponding upload commands for a file and folder are:
1
2 |
sftp> put testfile.txt
sftp> put -r testfile.txt |