rsync
是Linux环境下非常流行的同步工具。Rsync通信默认为明文。这使得rsync易受中间人攻击。如何使rsync与 ssh
. 在本教程中,我们将探讨使用 ssh
检查Ssh连接
我们要做的第一件事是检查远程ssh服务。我们当然会使用 ssh
这个命令。在本例中,用户是 root
服务器名为 poftut2
.
$ ssh [email protected]
通过Ssh隧道将单个文件从本地复制到远程
第一个示例是关于通过ssh将本地单个本地文件复制到远程系统。我们将提供 -e ssh
参数以启用ssh tunelling。我们将复制名为 mydata.dat
到名为 poftut2
使用用户名 ismail
目录 /home/ismail/
$ rsync -e ssh mydata.dat [email protected]:/home/ismail/
启用基于PasswordlessKey的Ssh身份验证
为了使事情更简单和批量工作,我们应该设置基于ssh身份验证的无密码密钥。这是通过复制和设置远程系统的登录公钥来实现的。首先,我们将创建ssh-kek。
$ ssh-keygen
这将在中创建一个私有和相关的公钥对 ~/.ssh/
目录。现在我们将使用以下命令设置基于密钥的身份验证。用户名将为 ismail
远程系统是 poftut2
$ ssh-copy-id [email protected]
通过Ssh隧道将单个文件从远程复制到本地
在本例中,我们将复制名为 asd.pub
到本地目录 /root/
. .
用于指定当前工作目录。本地文件将被命名为 asd.pub
.
$ rsync -e ssh [email protected]:/root/asd.pub .
从本地文件夹同步到远程文件夹
现在我们需要更多有用的例子。最常用的情况之一是将本地文件夹与远程文件夹同步。我们将通过ssh隧道从本地文件夹同步到远程文件夹。
$ rsync -e ssh /home/ismail/ [email protected]:/bak
从远程文件夹同步到本地文件夹
这个例子是上一个例子的相反版本。我们将从远程系统同步到本地系统。
$ rsync -e ssh [email protected]:/bak /home/ismail/
指定不同的Ssh端口
Ssh使用TCP/22作为默认端口。但这在某些时候可能不一样。我们可能需要显式地指定远程ssh端口。我们可以用 -e
带的选项 ssh
命令如下。
$ rsync -e "ssh 2222" [email protected]:/bak /home/ismail/
相关文章: 如何安装和管理服务器?