Recently I have encountered a situation whereby I need to transfer a file to a server, and ssh client and server are not installed in that server. And to make matters worst, that server does not have internet connection for me to install openssh-clients on it. Luckily, that server has rsync installed, which kind of save my day.
What I will show here, is how to transfer file using rsync protocol without ssh. We will call the server without ssh, and without internet connectivity with serverA, and the other server that has internet connectivity as serverB.
serverA: server without ssh and internet connectivity
serverB: server with internet connectivity
After I have acquired all the files needed by serverA by downloading in serverB, I need to start rsync in daemon mode. Before that, I need to tell rsync which folder that I wish to share via the rsync protocol, by editing /etc/rsyncd.conf. Let's say I want to share my /tmp directory, which contain a file called myfile.txt.
serverB # cat >> /etc/rsyncd.conf <<EOF
[tmp]
path = /tmp
EOF
Next, start rsync in daemon mode. Rsync will make use of the /etc/rsyncd.conf for the daemon configuration.
serverB # rsync --daemon
We can see that rsync by default will listen on port 873
serverB # ss -tulpn | grep rsync
tcp LISTEN 0 128 0.0.0.0:873 0.0.0.0:*
In serverA, we need to use the rsync command to connect to rsync daemon in serverB. To check which directory is available for download:
serverA # rsync serverB::
tmp
Download the file
serverA # rsync serverB::tmp/myfile.txt
serverA # ls
myfile.txt
You have now downloaded the myfile.txt file, from serverB just by using rsync. A note to remember, rsync protocol does not have any encryption, but it is good enough for a LAN environment.
No comments:
Post a Comment