Posted on June 28, 2023 by nexonhost
How To Transfer File With Stfp Command.
In this tutorial, we will show you how to use the Linux sftp command.
What is SFTP:
SFTP (SSH File Transfer Protocol) is a secure file protocol that is used to access, manage, and transfer files over an encrypted SSH transport.
Before you Begin.
To be able to transfer files via SFTP you must have write permission on the remote system.
When transferring large files, it is recommended to run the sftp command inside a screen or tmux session.
The directory from where you run the sftp command is the local working directory.
Don’t confuse SFTP with FTPS. Both protocol serve the same purpose. However, FTPS stands for FTP Secure, and it is an extension to the standard FTP protocol with support for TLS.
Establishing an SFTP connection
SFTP works on a client-server model. It is a subsystem of SSH and supports all SSH authentication mechanisms.
To open an SFTP connection to a remote system, use the sftp command followed by the remote server username and the IP address or domain name:
sftp remote_username@server_ip_or_hostname
If you are connecting to the host using password authentication, you will be prompted to enter the user password.
Once connected, you will be presented with the sftp prompt, and you can start interacting with the remote server:
Connected to remote_username@server_ip_or_hostname. sftp>
If the remote SSH server is not listening on the default port 22 , use the -P option to specify the SFTP port:
sftp -P custom_port remote_username@server_ip_or_hostname
SFTP Commands
Most of the SFTP commands are similar or identical to the Linux shell commands.
To get a list of all available SFTP commands, type help, or ?.
help
This will output a long list of all available commands, including a short description of each command:
Available commands: bye Quit sftp cd path Change remote directory to 'path' ... ... version Show SFTP version !command Execute 'command' in local shell ! Escape to local shell ? Synonym for help
Navigating with SFTP
When you are logged in to the remote server, your current working directory is the remote user home directory. You can check that by typing:
pwd
Remote working directory: /home/remote_username
To list the files and directories, use the ls command:
ls
To navigate to another directory, use the cd command. For example, to switch to the /tmp directory you would type:
cd /tmp
The above commands are used to navigate, and work on the remote location.
The SFTP shell also provides commands for local navigation, information and file management. The local commands are prefixed with the letter l.
For example, to print the local working directory, you would type:
cd lpwd
Local working directory: /home/local_username
Transferring Files with SFTP
SFTP allows you to transfer files between two machines securely.
If you are working on a desktop machine, you can use a GUI SFTP client like WinSCP or FileZilla to connect to the remote server and download or upload files.
The sftp command is useful when you work on a server without GUI, and you want to transfer files or perform other operations on the remote files.
Downloading Files with the SFTP Command
To download a single file from the remote server, use the get command:
get filename.zip
The output should look something like this:
Fetching /home/remote_username/filename.zip to filename.zip /home/remote_username/filename.zip 100% 24MB 1.8MB/s 00:13
When downloading files with sftp, the files are downloaded to the directory from which you typed the sftp command.
If you want to save the downloaded file with a different name, specify the new name as the second argument:
get filename.zip local_filename.zip
To download a directory from the remote system, use the recursive -r option:
get -r remote_directory
If a file transfer fails or is interrupted, you can resume it using the reget command.
The syntax of reget is the same as the syntax of get:
reget filename.zip
Uploading Files with the SFTP Command
To upload a file from the local machine to the remote SFTP server, use the put command:
put filename.zip
The output should look something like this:
Uploading filename.zip to /home/remote_username/filename.zip filename.zip 100% 12MB 1.7MB/s 00:06
If the file you want to upload is not located in your current working directory, use the absolute path to the file.
When working with put you can use the same options that are available with the get command.
To upload a local directory, you would type:
put -r locale_directory
To resume an interrupted upload:
reput filename.zip
File Manipulations with SFTP
Typically, to perform tasks on a remote server, you would connect to it via SSH and do your work using the shell terminal. However, in some situations, the user may have only SFTP access to the remote server.
SFTP allows you to perform some basic file manipulation commands. Below are some examples of how to use the SFTP shell:
Get information about the remote system’s disk usage :
df
Size Used Avail (root) %Capacity 20616252 1548776 18002580 19067476 7%
Create a new directory on the remote server:
mkdir directory_name
Rename a file on the remote server:
rename file_name new_file_name
Delete a file on the remote server:
rm file_name
Delete a directory on the remote server:
rmdir directory_name
Change the permissions of a file on the remote system:
chmod 644 file_name
Change the owner of a file on the remote system:
chown user_id file_name
You must supply the user ID to the chown and chgrp commands.
Change the group owner of a remote file with:
chgrp group_id file_name
Once you are done with your work, close the connection by typing bye or quit.
Conclusion
In this tutorial, we have shown you how to use the sftp command to download and upload files to your remote SFTP server.