使用ssh keygen实现rsync免密钥同步数据

总结:生成公钥和私钥,把公钥推送到远端,并生成authorized_keys公钥验证配置文件
rsync连接方式每次都需要输入密码;我们可以通过ssh keygen的公私钥机制来实现ssh连接时认证(做定时任务时,可能需要用到)。
1、服务器添加用户Ricky,并在家目录下创建.ssh目录(rsync服务端)

[[email protected] ~]#useradd Ricky
[[email protected] ~]# mkdir /home/Ricky/.ssh
.ssh目录用来存放公钥验证文件

2、在客户端使用ssh-keygen生成私钥与公钥(rsync客户端)

[[email protected] ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /usr/rsync_id_dsa #为避免覆盖root的id_rsa,把私钥放到/usr/rsync_id_dsa
Enter passphrase (empty for no passphrase): #回车就行,空表示没有密码
Enter same passphrase again: #回车
Your identification has been saved in /usr/rsync_id_dsa.
Your public key has been saved in /usr/rsync_id_dsa.pub.#生成公钥
The key fingerprint is:
8a:97:ca:71:ee:99:96:3c:1e:d6:cd:76:a7:3d:69:e0 [email protected]
The key‘s randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|                 |
|        S        |
|     . + o  .    |
|    o.B.. +..... |
|   . B=+ . .E++  |
|    o+*.    .... |
+-----------------+
You have new mail in /var/spool/mail/root

3、把客户端生成的公钥推送到服务端
因为使用的Ricky用户进行验证,所以放到/home/Rikcy/.ssh目录下

[[email protected] ~]# scp /usr/rsync_id_dsa.pub [email protected]:/home/Ricky/.ssh
[email protected]‘s password:
rsync_id_dsa.pub                                    100%  392     0.4KB/s   00:00   

也可以使用搭建好的rsync服务推送,还是需要输入密码

[[email protected] ~]# rsync /usr/rsync_id_dsa.pub [email protected]:/home/Ricky/.ssh
[email protected]‘s password:
[[email protected] ~]#

4、到服务端上把公钥存放到authorized_keys配置文件中
这是ssh key验证时访问的公钥所在的配置文件。authorized_keys是不存在的,直接下面的命令就可以创建了。

[[email protected] .ssh]# cat rsync_id_dsa.pub > authorized_keys
[[email protected] .ssh]# chown Ricky:Ricky authorized_keys #修改该文件的属主与属组,让其成为Ricky的配置文件  

5、使用rsync ssh –i 进行推送
ssh的-i参数:指定自身的私钥,并与远端的用户的公钥进行验证,验证通过则建立ssh连接进行数据交换,否则拒绝连接。

[[email protected] ~]# rsync -avzP -e ‘ssh -p 22 -i /usr/rsync_id_dsa‘ /etc/hosts [email protected]:/tmp/
sending incremental file list
hosts
         311 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/1)
rsync: mkstemp "/tmp/.hosts.qlgEix" failed: Permission denied (13)

sent 189 bytes  received 31 bytes  440.00 bytes/sec
total size is 311  speedup is 1.41
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1039) [sender=3.0.6]

这里推送数据失败,的原因是backup备份服务器上的/tmp/对于Ricky用户来说没有权限。

[[email protected] Ricky]# ls -ld /tmp
drwxr-xr-x. 2 root root 4096 5月  17 02:36 /tmp

重新创建一个Ricky的目录,用来接收数据

[[email protected] ~]# mkdir /ricky
[[email protected] ~]# chown Ricky:Ricky /ricky/
[[email protected] ~]# ls -ld /ricky/
drwxr-xr-x 2 Ricky Ricky 4096 5月  17 02:43 /ricky/
[[email protected] ~]#
[[email protected] ~]# rsync -avzP -e ‘ssh -i /usr/rsync_id_dsa‘ /etc/hosts [email protected]:/ricky/
sending incremental file list 无需输入密码
hosts
         311 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/1)

sent 189 bytes  received 31 bytes  440.00 bytes/sec
total size is 311  speedup is 1.41
You have new mail in /var/spool/mail/root
[[email protected] ~]#
[[email protected] ~]# ls /ricky/
hosts
[[email protected] ~]#

注意:一定要确保对应的文件和目录,访问的用户是具有权限的,否则验证不能通过,或者推送无访问权限被拒绝。

原文地址:http://blog.51cto.com/13691477/2120629

时间: 2024-10-11 07:36:31

使用ssh keygen实现rsync免密钥同步数据的相关文章

【转】CentOS5.6下配置rsync内网同步数据到外网

[转]CentOS5.6下配置rsync内网同步数据到外网 本文转自:http://www.linuxidc.com/Linux/2012-06/64070.htm 一.需求 卫士那边有一个需求,就是要把一台内网服务器的数据同步到外网的一台服务器上,之前我用的是rsync+intify-tool+ssh实现的实时同步更新,前几天我还在东莞出差,开发的人给我打电话说这两台服务器的数据不同步了,我上去检查一遍,原来是用来同步数据的这个系统账号被北京的同事修改,ssh免密码登陆失败了,所以数据同步不了

2-3-2 rsync+inotify备份同步数据

RSYNC = Remote Sync 远程同步 高效,一定要结合shell 官网:https://rsync.samba.org Author: Andrew Tridgell, Wayne Davison, and others Andrew Tridgell是Samba项目的领导者和主要开发人员,同时还在参与开发rsync\Linux Kernel. 与SCP的比较:scp=无法备份大量数据,类似windows的复制 rsync=边复制 ,边统计,边比较 Rsync特性和优点 可以镜像保存

rsync + inotify 实时同步数据

简介 Rsync (remote sync)是一款开源.快速,多功能.可实现增量的本地或远程数据镜像同步备份优秀工具.它可通过 LAN/WAN 快速同步多台主机间的文件.rsync 当前由 rsync.samba.org 维护.rsync 使用所谓的"rsync演算法"来使本地和远程主机之间的文件达到同步,该算法只传送两个文件中的不同部分,而不是每次都整份传送,因此速度相当快. 特点:   1.可以镜像保存整个目录树或文件系统:   2.可实现增量同步,既只同步发生变化的数据,因此数据

通过Rsync本机同步数据

yum -y install rsync 本机同步 速度会比cp慢一点 用它同步的好处就是下次同步只会更新没有的数据,已存在会自动跳过. 还有就是可以保留文件的属性信息 包括软硬链.权限.时间等 具体参数: rsync参数的具体解释如下: -v, --verbose 详细模式输出-q, --quiet 精简输出模式-c, --checksum 打开校验开关,强制对文件传输进行校验-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD-r, --re

rsync+inotify实现同步数据

1.rsync man一下sync,就会发现:sync-flush file system buffers,它是一个把缓冲区中的数据同步到文件系统中的一个命令:而rsync其实就是remote rsync,它是一个远程同步工具,兼具cp和scp的功能,rsync命令的使用几乎和scp是一样一样的.rsync是通过超级守护进程xinetd进行触发同步的. 1)优点:与cp和scp相比来说,rsync更快,更安全,支持增量备份.rsync在数据同步的过程中,不像cp一样全部都拷贝,而是先去比对特征码

rsync实现文件备份同步(比如服务器镜像)

[rsync实现网站的备份,文件的同步,不同系统的文件的同步,如果是windows的话,需要windows版本cwrsync] 一.什么是rsync rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限.时间.软硬链接等附加信息. rsync是用 “rsync 算法”提供了一个客户机和远程文件服务器的文件同步的快速方法,而且可以通过ssh方式来传输文件,这样其保密性也非常好,另外它还是免费的软件. rsync 包

RSync实现文件备份同步

转自:http://www.mike.org.cn/blog/index.php?load=read&id=639###pp=0 [rsync实现网站的备份,文件的同步,不同系统的文件的同步,如果是windows的话,需要windows版本cwrsync] 一.什么是rsync rsync,remote synchronize顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限.时间.软硬链接等附加信息. rsync是用 “rsync 算法”提供了一个客户机和

rsync简介与rsync+inotify配置实时同步数据

rsync简介 rsync是linux系统下的数据镜像备份工具.使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主机同步. rsync特性 rsync支持很多特性: 可以镜像保存整个目录树和文件系统 可以很容易做到保持原来文件的权限.时间.软硬链接等等 无须特殊权限即可安装 快速:第一次同步时rsync会复制全部内容,但在下一次只传输修改过的文件.rsync在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽 安全:可以使用scp.

架设rsync服务器同步数据

什么是rsync rsync 是一个快速增量文件传输工具,它可以用于在同一主机备份内部的备分,我们还可以把它作为不同主机网络备份工具之用.本文主要讲述的是如何自架rsync服 务器,以实现文件传输.备份和镜像.相对tar和wget来说,rsync 也有其自身的优点,比如速度快.安全.高效. rsync的安装 在CentOS服务器,我们可以执行以下命令安装 yum install rsync 对于debian.ubuntu服务器,则是以下命令 sudo apt-get install rsync