Rsync + ssh 安全通道进行同步.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Rsync ssh 安全通道进行同步 安全 通道 进行 同步
- 资源描述:
-
Rsync + ssh 安全通道进行同步 出自学习笔记 跳转到: 导航, 搜索 目录 § 1 应用说明 § 1.1 加密传输 § 1.2 同步方向 § 2 环境说明 § 2.1 硬件环境 § 2.2 网络环境 § 2.3 系统环境 § 3 软件简介 § 3.1 SSH的简介 § 3.2 RSYNC的简介 § 4 软件安装 § 4.1 SSH的安装 § 4.2 RSYNC的安装 § 4.2.1 ports方式安装 § 4.2.2 手工安装 § 4.3 ssh的配置 § 4.3.1 创建帐户 § 4.3.2 生成公钥和私钥 § 4.3.3 拷贝到客户端 § 4.3.4 测试登录 § 5 Rsync的配置 § 5.1 Rsync的常用参数 § 5.2 控制脚本 § 6 运行 § 7 结束语 § 8 附录 § 8.1 1 RSYNC 参数详解 § 8.2 2 中文编码问题 应用说明 正如很多人知道的那样,Rsync可是开源同步软件中的老大哥。很多人(当然也包括我自己)都在使用它来进行同步、备份工作。它的功能强大,应用灵活,就不多说了。如果对Rsync前世今生很感兴趣,那么一会看看简介,然后到他们官方网站好好看看。 虽然Rsync很强大,但是它并没有直接支持加密传输。也就是说,它是直接明文传输的,对于一些安全要求高的数据,那就不太保险了。不信?你可以用抓包工具试试看。 如果要传输保密文件,那怎么办?放心,Rsync提供了ssh通道功能。也就是通过ssh安全通道来传输,传输过程中,数据是经过ssh加密的。不信?你还是可以抓包看看。 这就是我们要进行的工作了,配置一个具有ssh安全通道的,安全级别高的同步体系。 加密传输 我们利用SSH来达到安全通道的目的。SSH 的 RSA 和 DSA 认证协议的基础是一对专门生成的密钥,分别叫做 专用密钥和 公用密钥(简称 私钥和公钥,下面我们都使用简称)。使用这些基于密钥的认证系统的优势在于:在许多情况下,有可能不必手工输入密码就能建立起安全的连接。 尽管基于密钥的认证协议相当安全,但是如果不注意保护,把私钥泄露了,那么别人也就可以登录到有公钥的服务器。那就很不安全了。 因此居于安全考虑,我们进行的同步配置,是居于普通用户来进行备份的。 同步方向 在这里采用的,不是常见的C/S模式,即源服务器运行rsync --daemon模式,备份服务器主动同步。而是采用SSH通道模式,不需要配置rsync --daemon。从源服务器直接同步到备份服务器。 环境说明 我配置的是A、B 两台主机,A主机做为源服务器,B主机作为客户端。 硬件环境 两台服务器的配置一样,硬件配置如下: 单志强2.4G CPU 2G 内存 36G SCSI硬盘 1G inter网卡 网络环境 两台服务器在同一个机房,但是不同网段。IP地址分别设置如下: A服务器的IP地址: 192.168.8.8 B服务器的IP地址: 192.168.11.11 系统环境 操作系统: A、B两台服务器均安装了FreeBSD 6.2-RELEASE-p2(通过make world升级到最新)。 SSH是系统自带的版本: # ssh -V OpenSSH_4.5p1 FreeBSD-20061110, OpenSSL 0.9.7e-p1 25 Oct 2004 软件简介 由于我们是在unix/linux下使用SSH和RSYNC,因此仅仅介绍SSH和RSYNC,而不介绍系统以及其他软件。 SSH的简介 SSH是英文Secure Shell的简写形式。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为 FTP、Pop、甚至为PPP提供一个安全的"通道"。 最初的SSH是由芬兰的一家公司开发的。但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件包,而且是免费的,可以预计将来会有越来越多的人使用它而不是SSH。目前所发行的开源UNIX/Linux,默认都会带有OpenSSH(一些可能需要你额外的安装一下)。 如果你喜欢的话,也可以安装SSH,他虽然有限制,但是对于非商业用户,是可以免费使用的。 相关链接如下: http://openssh.org RSYNC的简介 在RSYNC的官方网站上,对于RSYNC的介绍非常简单。 rsync 是一个开放源码的快速的文件同步工具,是在GUN的GPL2协议下发布的。 所以任何人都可以免费的使用设置修改和再发行它。rsync的作者是 Wayne Davison。 相关链接如下: http://rsync.samba.org/ 软件安装 SSH的安装 由于系统会自带有SSH,我们就直接使用系统自带的SSH,而不再单独安装。 我会另外写一个SSH安装配置的专题文章。 RSYNC的安装 我是在FreeBSD上进行的安装配置,因此同时给出利用FreeBSD的ports安装和手工安装两种方式。其中手工安装方式,也可以在Linux下进行。 ports方式安装 在开始ports安装之前,先做一次ports更新。这样做的目的是让ports保持最新,并且让通过ports安装的软件是最新的。 用CVSUP更新: # cvsup -L2 -g /opt/etc/ports-supfile 你需要根据自己的ports-supfile文件路径来指定。 进入rsync的ports目录: # cd /usr/ports/net/rsync/ 查看软件版本信息: # cat distinfo MD5 (rsync-2.6.9.tar.gz) = 996d8d8831dbca17910094e56dcb5942 SHA256 (rsync-2.6.9.tar.gz) = ca437301becd890e73300bc69a39189ff1564baa761948ff149b3dd7bde633f9 SIZE (rsync-2.6.9.tar.gz) = 811841 由此我们可以得知rsync的版本是 2.6.9,也就是目前最新的发行版本。 选择配置: # make config [ ] POPT_PORT Use popt from devel/popt instead of bundled one [X] TIMELIMIT Time limit patch [X] FLAGSP File system flags support patch, adds --flags [ ] ACLSP ACL support patch, adds --acls [X] SSH Use SSH instead of RSH 在出现选项界面里,通过移动上下键和空格键,选择SSH,也就是用SSH替换RSH。其他的默认就可以了。 完成安装: # make install clean 很简单吧?使用ports的好处就是,安装太方便了。只要执行 make install 它会自动下载,编译,安装。clean 是告诉ports,安装完后,清楚源码文件和其他过程文件。 手工安装 *下载安装包 下载页面: http://rsync.samba.org/ftp/rsync/ 具体下载链接: http://rsync.samba.org/ftp/rsync/rsync-2.6.9.tar.gz *解压和配置 # tar -zxvf rsync-2.6.9.tar.gz # cd rsync-2.6.9 # ./configure --disable-debug --with-rsh=ssh 说明: 由于 --with-rsh=默认就是ssh,所以也可以不显式指定这个配置项; 还可以通过 --prefix=/path 来指定安装目录,默认则安装到/usr/local/bin目录; 关闭调试模式 --disable-debug; 也可以通过 ./configure --help 查看更多选项,再根据自己的需要来设定。 *编译和安装 # make # make install 至此,没有出现什么错误的话,整个手工安装过程就完毕了。 ssh的配置 在这里的配置,当然不是指如何配置SSH服务啦。而是指配置用来SSH登录相关的帐户的公钥、私钥。 注意: 备份服务器必须运行sshd服务。 创建帐户 在A、B两台服务器上各创建一个普通帐户,不需要设置密码。 在FreeBSD下创建帐户: # pw user add -d /home/mybackup -n mybackup 在Linux下创建帐户: # useradd -d /home/mybackup mybackup 生成公钥和私钥 这些操作是在同步源服务器,就是有需要做备份数据的服务器。这里是指A主机。 首先,切换到mybackup帐户以及该帐户的用户目录下: # su mybackup $ cd ~ $ pwd /home/mybackup $ mkdir .ssh $ cd .ssh $ pwd /usr/home/mybackup/.ssh 生成公钥、私钥: $ ssh-keygen -t dsa -b 1024 Generating public/private dsa key pair. Enter file in which to save the key (/home/mybackup/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/mybackup/.ssh/id_dsa. Your public key has been saved in /home/mybackup/.ssh/id_dsa.pub. The key fingerprint is: 20:7c:c3:b4:69:a7:e1:af:f3:e3:ae:e7:9d:0a:b6:69 mybackup@ 注意: 当提示 Enter passphrase (empty for no passphrase): 时,不要输入,直接回车;并且提示 Enter same passphrase again: 时,也直接回车。 这时候,我们就会得到公钥、私钥两个文件在.ssh目录下。我们查看一下: $ ls -al .ssh total 8 drwxr-xr-x 2 mybackup mybackup 512 Mar 22 17:48 . drwxr-xr-x 3 mybackup mybackup 512 Mar 22 17:46 .. -rw------- 1 mybackup mybackup 672 Mar 22 17:48 id_dsa -rw-r--r-- 1 mybackup mybackup 613 Mar 22 17:48 id_dsa.pub 其中 id_dsa 是密钥文件,id_dsa.pub 顾名思义,是公钥文件啦。 拷贝到客户端 因为我们之前生成的公钥、密钥,都是在源服务器上操作。而客户端(做备份的服务器)上,需要有刚才生成的公钥,才能不提示输入密码,直接登录ssh。 使用scp来远程拷贝: $ scp /home/mybackup/.ssh/id_dsa.pub root@192.168.11.11:/home/mybackup/.ssh/authorized_keys 如果用户名、密码和文件路径没有错误,在按提示输入192.168.11.11的root密码后,很快就会把id_dsa.pub文件拷贝过去了。 测试登录 将公钥拷贝到客户端后,我们来测试下能不能在源服务器上不用输入密码ssh登录客户端服务器。 $ ssh -l mybackup 192.168.11.11 或者: $ ssh mybackup@192.168.11.11 如果没有提示输入密码,就登录到192.168.11.11 服务器,那恭喜你,说明配置成功了。 Rsync的配置 事实上,我们在利用SSH通道来运行RSYNC时,是不需要配置一个Rsync服务器的。在这里我们指的配置,是有两方面,一是运行rsync的参数,一是运行同步控制的脚本。 Rsync的常用参数 rsync 常用的运行参数说明: -v, –verbose 详细模式输出 -c, –checksum 打开校验开关,强制对文件传输进行校验 -a, –archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD -r, –recursive 对子目录以递归模式处理 -p, --perms 保持文件权限 -o, --owner 保持文件属主信息 -g, --group 保持文件属组信息 -e, --rsh=COMMAND 指定替代rsh的shell程序 --delete 删除那些DST中SRC没有的文件 --progress 显示备份过程 -t, --times 保持文件时间信息 -z, --compress 对备份的文件在传输时进行压缩处理 --stats 给出某些文件的传输状态 测试rsync同步,将A主机的/opt/etc同步到B主机的/tmp/myetc目录下: $ rsync -vzrtopg --progress --stats --delete -e ssh /opt/etc mybackup@192.168.11.11:/tmp/myetc 然后到B主机的/tmp/myetc目录下看看,是不是发现一个etc目录,并且这个etc目录下面的文件,跟A主机的/opt/etc目录下面的文件一样。 控制脚本 因为往往备份的目录是相对固定的,如果每次备份都要输入那么长一串,会不会觉得很麻烦呢?那我们写一个脚本来工作,并且利用crontab来定时定点的执行同步工作。 控制脚本代码如下: #!/bin/sh # rsyncer.sh # author Jonsen Yang( 16hot ) # home # date 2007-03-20 # LOCAL_DIR="/opt/etc" ; REMOTE_USER="mybackup" ; REMOTE_HOST="192.168.11.11" ; REMOTE_DIR="/tmp/myetc" ; RSYNC_CMD="/usr/local/bin/rsync" ; RSYNC_LOG="/opt/var/log/rsync.log" ; RSYNC_RUN="${RSYNC_CMD} -vzrtopg --progress --stats --delete -e ssh ${LOCAL_DIR} ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_DIR}"; ${RSYNC_RUN} >> ${RSYNC_LOG} 2>&1; # end rsyncer.sh 将 rsyncer.sh 脚本保存到 /opt/bin(或者你自己的工作目录)目录下,还要注意保证设置好mybackup用户可以执行的属性。 $ chmod +x /opt/bin/rsyncer.sh 另外,要注意 /opt/var/log/rsync.log 也必须是mybackup帐户可以读写才行。 运行 经过上面的步骤后,可谓万事俱备,只欠运行了。其实也很简单,我们只需要设置crontab,定时执行备份脚本进行备份就可以了。 $ crontab -e 0 3 * * * /opt/bin/rsyncer.sh 这样,每天凌晨3点,就会自动执行 /opt/bin/rsyncer.sh 进行备份了。 结束语 在开源软件里,很多很多很好用而且分文不收的软件。我们合理的利用这些软件,可以为我们带来很多很多好处。比如,节省成本,提高工作效率等等。 因此,多学习开源软件,是很好的。 作者: Jonsen Yang( 16hot、 杨明茂 ) 附录 1 RSYNC 参数详解 -v, –verbose 详细模式输出 -q, –quiet 精简输出模式 -c, –checksum 打开校验开关,强制对文件传输进行校验 -a, –archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD -r, –recursive 对子目录以递归模式处理 -R, –relative 使用相对路径信息 -b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。 --backup-dir 将备份文件(如~filename)存放在在目录下。 -suffix=SUFFIX 定义备份文件前缀 -u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件) -l, --links 保留软链结 -L, --copy-links 想对待常规文件一样处理软链结 --copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结 --safe-links 忽略指向SRC路径目录树以外的链结 -H, --hard-links 保留硬链结 -p, --perms 保持文件权限 -o, --owner 保持文件属主信息 -g, --group 保持文件属组信息 -D, --devices 保持设备文件信息 -t, --times 保持文件时间信息 -S, --sparse 对稀疏文件进行特殊处理以节省DST的空间 -n, --dry-run现实哪些文件将被传输 -W, --whole-file 拷贝文件,不进行增量检测 -x, --one-file-system 不要跨越文件系统边界 -B, --block-size=SIZE 检验算法使用的块尺寸,默认是700字节 -e, --rsh=COMMAND 指定替代rsh的shell程序 --rsync-path=PATH 指定远程服务器上的rsync命令所在路径信息 -C, --cvs-exclude 使用和CVS一样的方法自动忽略文件,用来排除那些不希望传输的文件 --existing 仅仅更新那些已经存在于DST的文件,而不备份那些新创建的文件 --delete 删除那些DST中SRC没有的文件 --delete-excluded 同样删除接收端那些被该选项指定排除的文件 --delete-after 传输结束以后再删除 --ignore-errors 及时出现IO错误也进行删除 --max-delete=NUM 最多删除NUM个文件 --partial 保留那些因故没有完全传输的文件,以是加快随后的再次传输 --force 强制删除目录,即使不为空 --numeric-ids 不将数字的用户和组ID匹配为用户名和组名 --timeout=TIME IP超时时间,单位为秒 -I, --ignore-times 不跳过那些有同样的时间和长度的文件 --size-only 当决定是否要备份文件时,仅仅察看文件大小而不考虑文件时间 --modify-window=NUM 决定文件是否时间相同时使用的时间戳窗口,默认为0 -T --temp-dir=DIR 在DIR中创建临时文件 --compare-dest=DIR 同样比较DIR中的文件来决定是否需要备份 -P 等同于 --partial --progress 显示备份过程 -z, --compress 对备份的文件在传输时进行压缩处理 --exclude=PATTERN 指定排除不需要传输的文件模式 --include=PATTERN 指定不排除而需要传输的文件模式 --exclude-from=FILE 排除FILE中指定模式的文件 --include-from=FILE 不排除FILE指定模式匹配的文件 --version 打印版本信息 --address 绑定到特定的地址 --config=FILE 指定其他的配置文件,不使用默认的rsyncd.conf文件 --port=PORT 指定其他的rsync服务端口 --blocking-io 对远程shell使用阻塞IO --stats 给出某些文件的传输状态 --progress 在传输时现实传输过程 --log-format=FORMAT 指定日志文件格式 --password-file=FILE 从FILE中得到密码 --bwlimit=KBPS 限制I/O带宽,KBytes per second -h, --help 显示帮助信息 2 中文编码问题 如果遇到两个系统的字符集编码不一致的问题是,可以使用--iconv参数来解决编码问题。 --iconv=from,to 用法如下: rsync -vzrtopg --progress --stats --delete --iconv=GB2312,UTF-8 -e ssh /opt/home 192.168.0.223:/opt/ 取自"展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




Rsync + ssh 安全通道进行同步.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/5702267.html