How to copy file remotely via SSH
SSH or Secure Shell is a protocol that allows secure access to remote computers. SSH implementation also comes with scp utility for remote file transfer that uses SSH protocol. Other applications such as sftp and rsync also utilize SSH for file transfer to secure their network transaction.
These applications allow us to copy our files from local to remote servers and copy files from remote servers to our local machine. Below are examples of how to use these applications for files transfers based on this setup:
Make sure you have access right to the remote server and correct permission to the remote files and folders
Transfer file using scp
The easiest of these are scp or secure copy. While cp is for copying local files, scp is for remote file transfer where both use almost the same syntax. The main difference is that with scp, you'll have to specify the remote host's DNS name or IP address and provide a login credential for the command to work. You can both scp files from local to remote and local to remote.
Copy single file from local to remote using scp.
$ scp myfile.txt [email protected]:/remote/folder/
If the target folder (/remote/folder/) is not specified, it will copy the file to the remote user's home directory.
scp from remote to local using a single file .
$ scp [email protected]:/remote/folder/remotefile.txt localfile.txt
Using . as the copy target (replacing localfile.txt will copy the remote file to the current working directory using the same filename (remotefile.txt)
Copy multiple files from local to remote using scp.
$ scp myfile.txt myfile2.txt [email protected]:/remote/folder/
Copy all files from local to remote using scp.
$ scp * [email protected]:/remote/folder/
Copy all files and folders recursively from local to remote using scp.
$ scp -r * [email protected]:/remote/folder/
remoteuser need to exist and have write permission to /remote/folder/ in the remote system.
GUI programs such WinSCP can also be used to transfer files between local and remote host using scp methods.
Transfer file using sftp
sftp or Secure FTP in the other hand works almost exactly like ftp but with secure connection. Most of the commands are similar and can be used interchangeably. The following sftp example will work exactly as ftp would.
$ sftp [email protected] Connected to 192.168.1.10. sftp> dir file1 file2 file3 sftp> pwd Remote working directory: /home/user sftp> get file2 Fetching /home/user/file2 to file2 /home/user/file2 100% 3740KB 747.9KB/s 00:05 sftp> bye $
Transfer file using rsync
You can also use ssh to secure your rsync session. To do this, use –rsh=ssh or -e “ssh” with your normal rsync commands. The following 2 commands will work exactly the same;
$ rsync -av --delete --rsh=ssh /path/to/source [email protected]:/remote/folder/ $ rsync -av --delete -e "ssh" /path/to/source [email protected]:/remote/folder/
If these options are not specified, rsync will first try to connect to rsyncd but will automatically fallback to SSH if rsyncd is not running in the remote system.
Mount remote filesystem locally
Remote filesystems could be mounted to the local host and accessed as a local filesystem. Mounting remote filesystem requires SSH access to the remote host and with the use of sshfs.