TABLE OF CONTENTS
SFTP (Secure File Transfer Protocol or SSH File Transfer Protocol) is a is a secure way to transfer files to and from your VPS. Unlike FTP, which sends usernames and passwords in plain text, SFTP secures the data in transit. SFTP utilizes the SSH protocol. If you have SSH access to your VPS, you can use SFTP to transfer files. There are many SFTP clients with intuitive graphical interfaces, but in this guide we will be covering how to transfer files using a text based command-line.
For this guide we'll be using an Ubuntu VPS.
SSH is the main way to connect to SkySilk VPS, so we are ready to utilize SFTP from the start. If you do not have an SSH server already you can install one with
apt-get install openssh-server
Note: It is strongly advisable to harden your SSH security when implementing an SFTP server. There are a number of ways to harden your SSH settings for enhanced security, however they are out of the scope of this guide. A link to a guide on hardening SSH is provided below.
Connecting to the SFTP server is very similar to connecting with SSH. In Unix based operating systems you can connect via the terminal using the following command
sftp <user>@<VPS_IP_Address_or_Hostname>
For command-line access using Windows you can utilize the PuTTY SFTP client PSFTP. If you installed PuTTY you can locate it by hitting the windows key and typing “PSFTP” in the search field.
You can access your server with PSFTP using the following command
open <VPS_IP_Address_or_Hostname>
You will be prompted to choose the user and enter a password.
Once you are connected to your VPS using SFTP you can begin transferring files.
To see a list of available commands and a short description of each you can enter
help ?
Navigating the file system is very similar to getting around in a Linux terminal.
Begin by using pwd to identify which directory you are currently working with.
pwd
Navigate to the desired directory you wish to transfer files to or from using cd
cd <Directory_Path>
List directory contents using ls
ls
Note: You can run the SFTP commands locally by prepending them with “l”
Examples of the previous commands but prepending "l" to operate them on the local host
lpwd lcd <Local_Directory_Path> lls
Now that we are in the correct directories on the local and remote hosts we can begin transferring files.
To copy a file from a remote directory to the local directory you can use
get <Remote_Filename>
To copy a file from the local directory to the remote directory you can use
put <Local_Filename>
You can close the SFTP session by entering "bye" or "exit"
bye exit
Now that you have learned the basics of navigating directories and copying files between remote and local hosts we will dive a little deeper into more advanced commands and their options.
You can change the filename with
get <Remote_Filename> <New_Filename> put <Local_Filename> <New_Filename>
You can create a directory with
mkdir <Directory_Name>
To recursively copy all the files in a directory and its subdirectories
get <Remote_Directory_Name> -r put <Local_Directory_Name> -r
To preserve file permissions between transfers
get <Remote_Filename> -p put <Local_Filename> -p
Now you know how to securely transfer files using SFTP in the command-line!
Join our Private Discord Chat to chat with, as well as find community assistance from other Verified SkySilk Users: https://invite.gg/SkySilk
CLICK TO DEPLOY AN UBUNTU LINUX VPS
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article