如何使用Rsync通过SSH复制文件

在本教程中,我们将使用Rsync通过SSH复制文件。

第1步 - 设置公共SSH密钥

在我们的源服务器上,我们将生成没有密码的公共SSH密钥:

ssh-keygen -f ~/.ssh/id_rsa -q -P ""
cat ~/.ssh/id_rsa.pub

这是我们的公共SSH密钥,可以放置在其他主机,让我们访问:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLVDBIpdpfePg/a6h8au1HTKPPrg8wuTrjdh0QFVPpTI4KHctf6/FGg1NOgM++hrDlbrDVStKn/b3Mu65//tuvY5SG9sR4vrINCSQF++a+YRTGU6Sn4ltKpyj3usHERvBndtFXoDxsYKRCtPfgm1BGTBpoSl2A7lrwnmVSg+u11FOa1xSZ393aaBFDSeX8GlJf1SojWYIAbE25Xe3z5L232vZ5acC2PJkvKctzvUttJCP91gbNe5FSwDolE44diYbNYqEtvq2Jt8x45YzgFSVKf6ffnPwnUDwhtvc2f317TKx9l2Eq4aWqXTOMiPFA5ZRM/CF0IJCqeXG6s+qVfRjB root@cloudads

将此键复制到剪贴板并登录到目标服务器。

将此SSH密钥放入〜/ .ssh / authorized_keys文件中:

如果您的SSH文件夹不存在,请手动创建:

mkdir ~/.ssh
chmod 0700 ~/.ssh
touch ~/.ssh/authorized_keys
chmod 0644 ~/.ssh/authorized_keys

第3步 - Rsync文件

Rsync是一个伟大的实用程序,因为它允许您,在许多其他事情之间,通过压缩和加密通道递归地复制文件。

我们将从/root/bigfile.txt中的源服务器(198.211.117.101)复制一个文件到我们的目标服务器(IP:198.211.117.129),并将其保存在/root/bigfile.txt中。

登录在198.211.117.101和rsync文件到198.211.117.129:

rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /root/bigfile.txt 198.211.117.129:/root/

如果您使用不同的用户,例如“用户名”,那么您必须将其附加到目标服务器前面。 请确保在该用户的〜/ .ssh / authorized_keys文件中包含您的公钥:

rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /root/bigfile.txt username@198.211.117.129:/

SSH选项有助于保持Rsync安静,并且不会在每次连接到新服务器时提示。

验证您是否已在目标服务器(198.211.117.129)上接收到该文件:

ls -la /root/bigfile.txt

你们都做完了!

作者:Bulat Khamitov