File Transfer Protocol (FTP) was a widely used protocol to transfer files or data remotely in an unencrypted format which is not a secure way to communicate.
As we all know that File Transfer Protocol is not at all secure because all transmissions happen in clear text and the data can be readable by anyone during sniffing the packets on the network.
So, basically, FTP can be used in limited cases or on the networks that you trust. Over the period of time, SCP (Secure Copy) and SSH (Secure Shell) addresses this security ambiguity and added an encrypted secure layer while transferring data between remote computers.
[ You might also like: Best Command-Line FTP Clients for Linux ]
SFTP (Secure File Transfer Protocol) runs over SSH protocol on standard port 22 by default to establish a secure connection. SFTP has been integrated into many GUI tools (FileZilla, WinSCP, FireFTP, etc.).
Security Warnings: Please don’t open the SSH port (Secure SHell) globally as this would be a security breach. You can only open for specific IP from where you are going to transfer or manage files on the remote system or vice versa.
- How to Secure and Harden OpenSSH Server
- How to Change SSH Port in Linux
- How to Sync Files Using Rsync with Non-standard SSH Port
- 5 Best Practices to Secure and Protect SSH Server
- 10 Wget Command Examples in Linux
This article will guide you to 10 sftp command examples to use through the interactive command-line interface in the Linux terminal.
1. How to Connect to SFTP
By default, the same SSH protocol is used to authenticate and establish an SFTP connection. To start an SFTP session, enter the username and remote hostname or IP address at the command prompt. Once authentication is successful, you will see a shell with an sftp> prompt.
[[email protected] ~]# sftp [email protected] Connecting to 18.104.22.168... [email protected]'s password: sftp>
2. Getting Help
Once, you are in the sftp prompt, check the available commands by typing ‘?‘ or ‘help‘ at the command prompt.
sftp> ? Available commands: cd path Change remote directory to 'path' lcd path Change local directory to 'path' chgrp grp path Change group of file 'path' to 'grp' chmod mode path Change permissions of file 'path' to 'mode' chown own path Change owner of file 'path' to 'own' help Display this help text get remote-path [local-path] Download file lls [ls-options [path]] Display local directory listing ln oldpath newpath Symlink remote file lmkdir path Create local directory lpwd Print local working directory ls [path] Display remote directory listing lumask umask Set local umask to 'umask' mkdir path Create remote directory put local-path [remote-path] Upload file pwd Display remote working directory exit Quit sftp quit Quit sftp rename oldpath newpath Rename remote file rmdir path Remove remote directory rm path Delete remote file symlink oldpath newpath Symlink remote file version Show SFTP version !command Execute 'command' in local shell ! Escape to local shell ? Synonym for help
3. Check Present Working Directory
The command ‘lpwd‘ is used to check the Local present working directory, whereas the pwd command is used to check the Remote working directory.
sftp> lpwd Local working directory: / sftp> pwd Remote working directory: /tecmint/
- lpwd – print the current directory on your system
- pwd – print the current directory on the ftp server
4. Listing Files with sFTP
Listing files and directories in local as well as a remote system ftp server.
5. Upload File Using sFTP
Put single or multiple files in remote system ftp server.
sftp> put local.profile Uploading local.profile to /tecmint/local.profile
6. Upload Multiple Files Using sFTP
Putting multiple files on in remote system ftp server.
sftp> mput *.xls
6. Download Files Using sFTP
Getting single or multiple files in a local system.
sftp> get SettlementReport_1-10th.xls Fetching /tecmint/SettlementReport_1-10th.xls to SettlementReport_1-10th.xls
Get multiple files on a local system.
sftp> mget *.xls
Note: As we can see by default with get command download file in local system with the same name. We can download remote files with a different name by specifying the name at the end. (This applies only while downloading the single file).
7. Switching Directories in sFTP
Switching from one directory to another directory in local and remote locations.
sftp> cd test sftp>
sftp> lcd Documents
8. Create Directories Using sFTP
Creating new directories on local and remote locations.
sftp> mkdir test
sftp> lmkdir Documents
9. Remove Directories Using sFTP
Remove directory or file in a remote system.
sftp> rm Report.xls
sftp> rmdir sub1
Note: To remove/delete any directory from a remote location, the directory must be empty.
10. Exit sFTP Shell
The ‘!‘ command drops us in a local shell from where we can execute Linux commands. Type ‘exit‘ command where we can see sftp> prompt return.
sftp> ! [[email protected] ~]# exit Shell exited with status 1 sftp>
The SFTP is a very useful tool for administrating servers and transferring files to and from (Local and Remote). We hope this tuts will help you to understand the usage of SFTP to some extent.