无需密码通过ssh执行rsync来同步文件的方法

Linux 2080℃

rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步(只传输变化过的数据),这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。 rsync是一个功能非常强大的工具,其命令也有很多功能特色选项。

1.rsync基本命令

rsync支持本地复制或与其它主机同步,命令语法如下
#本地同步命令格式:
rsync [ 选项 ] 源目录 目标目录
#从远程同步到本地:
rsync [选项] 用户名@主机IP:源目录 本地目录
#从本地同步到远程:
rsync [选项] 本地目录 用户名@主机IP:目标目录
#常用选项: -a 归档模式, -v 显示同步信息, -z 传输过程中启用压缩
#注意远程端应开启sshd服务,且用户对远程目录必须有相应的访问权限

例如执行以下操作时,服务器将会提示需要用户使用密码登录。

rsync -avz -e ssh /home/ramesh/ ramesh@192.168.200.10:/backup/ramesh/

2.生成密匙

通过设置ssh以便在执行rsync操作时不需要手动输入密码,首先要使用ssh-keygen在本地生成公钥和私钥。

ssh-keygen
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
#当提示输入密码时,只需敲两次回车键,不输入其他字符

3.将公匙拷贝至远程主机

接下来,执行ssh-copy-id将通过上面生成的公匙拷贝至远程主机。

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.200.10
#按照提示输入远程主机帐户和密码,然后公匙自动拷贝至远程主机。

4.无需密码执行rsync

现在,你可以不需要密码就可以ssh连接到远程主机。重新来执行之前rsync,现在应该就不会提示输入密码了。

rsync -avz -e ssh /home/ramesh/ ramesh@192.168.200.10:/backup/ramesh/

转载请注明:零五宝典 » 无需密码通过ssh执行rsync来同步文件的方法