SSH
or Secure Shell
is a protocol that allows a secure way to access remote computer. SSH
implementation comes with scp
utility for remote file transfer that utilises SSH
protocol. SSH
for file transfer is also utilised by other applications such as sftp
and rsync
which can make use of SSH
to secure its network transaction.
All these applications allow us to copy our files from local to remote server and to copy files from remote server to our local machine. Below are examples on 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
Methods for remote file transfer using SSH:
The easiest of these are scp
or secure copy
. While cp
is for copying local files, scp
is for remote file transfer where both uses 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 login credential for the command to work. You can both scp
files from local to remote and local to remote.
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
.$ 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
)
scp
.$ scp myfile.txt myfile2.txt [email protected]:/remote/folder/
scp
.$ scp * [email protected]:/remote/folder/
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.
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 $
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.
Remote filesystem could be mounted to a local host and could be accessed as a local filesystem. This requires SSH
access to the remote host and with the use of sshfs
.
Comment anonymously. Login not required.