rsync 免密登录(daemon方式和ssh方式)
一、server端配置rsync 并以daem的方式运行rsync.
server 端的配置文件为/etc/rsyncd.conf:
uid=alun
gid=alun
pid file=/var/run/rsyncd.pid
log file=/var/log/rsyncd.log
secrets file=/etc/rsyncd.secrets #指定登录rsyncd的用户名和密码,文件为用户名:密码对,文件权限必须是600.
auth users=alun #指定rsync的用户名,可以和server当前系统的用户名相同也可以不同。
[repo] #模块配置,repo为模块名,一个模块对应一个文件目录,path为其根目录。
path = /home/alun
read only = no
auth users=alun #指定可以访问该模块的用户
rsyncd.secrets 文件:
alun:alun086
二,客户端的使用方式
1、使用环境变量, RSYNC_PASSWORD指定密码:
export RSYNC_PASSWORD="alun086"
rsync 文件名 alun@192.168.56.2::repo #此处必须是双冒号,表示以daemon的方式使用rsync,或者使用rsync协议:
rsync file_name rsync://alun@192.168.56.2/repo
2、使用--password-file选项指定secrets文件:
rsync file_name --password-file=./rsyncd.secrets alun@192.168.56.2::/repo
此处的secrets文件只包含用户alun的密码。
三、rsync 开机启动
ubuntu /etc/init.d下已有rsync的启动脚本。开启rsync开机启动只需修改/etc/default/rsync中的RSYNC_ENABLE选项为true即可,默认为false.
附:
如果采用ssh方式同步文件,可按ssh免密方式操作:
1. 在Client端生成公钥和私钥:
ssh-keygen -t rsa
会在当前用户根目录下生成.ssh文件夹和id_rsa及id_rsa.pub两个文件。
2. Copy 公钥到Server端:
ssh-copy-id user-name@servier-ip
user-name: 登录server的用户名
然后输入密码。Client端的公钥会被拷贝到Server上/home/user-name/.ssh/authorized_keys中,此后登录就不用输入密码了。