ssh 密钥登录方法和rsync加密传输同步文件设置
Host1:首先建立本机的公私密钥用户哪个用户登录就切换至哪个目录,本文以jenkins为例:(如没有jenkins则建立属组属主,创建用户组和用户:#groupadd-g 1212 jenkins //创建用户组jenkins ,id随便用的1212#useradd -m -s /bin/bash -g 1212 -u 1212 jenkins //创建jenkins用户...
Host1:
首先建立本机的公私密钥
用户哪个用户登录就切换至哪个目录,本文以jenkins为例:
(如没有jenkins则建立属组属主,创建用户组和用户:
#groupadd-g 1212 jenkins //创建用户组jenkins ,id随便用的1212
#useradd -m -s /bin/bash -g 1212 -u 1212 jenkins //创建jenkins用户,并加入jenkins用户组
#mkdir /home/jenkins/.ssh //为jenkins创建.ssh目录
#chown jenkins:jenkins /home/jenkins/.ssh //给权限属组属主
#chown jenkins:jenkins /usr/jenkins/test //给准备上传的文件夹权限)
#su Jenkins
$ssh-keygen -t dsa
一路回车
然后将公钥文件传送到需要登陆的服务器
scp .ssh/id_dsa.pub root@host2:id_dsa.pub
(scp id_dsa.pub root@ host2:test_id_dsa.pub)
如要密码输入继续
$ssh root@host2(登录远程服务器)
#cat id_dsa.pub >> /root/.ssh/authorized_keys(把刚才的公钥文件内容添加到用户的.ssh目录下的authorized_keys文件中)
# chmod 600 /root/.ssh/authorized_keys(然后更改该文件权限)
#exit(退出)
再次登陆即不再需要密码了,测试一下:
$ ssh host2
配置好ssh密匙验证后,【现在记录一下rsync的设置。
一般采用源码安装,安装后可能没有配置文件(只有服务器端才需要配置文件,客户端是不需要配置配置文件的),需要在/etc下创建rsyncd.conf文件,其内容:
secrets file=/etc/rsyncd.secrets
motd file=/etc/rsyncd.motd
read only=yes
list=yes
uid=root
gid=root
use chroot=no
max connections=3
log file=/var/log/rsyncd.log
pid file=/var/log/rsyncd.pid
lock file=/var/run/rsync.lock
[share]
comment=share file
path=/home/www
以上配置都是指在服务器端配置】,配置完毕后还需要在客户端安装该软件但是不用配置,只需要在客户端执行rsync命令,如下测试shell脚本:
#!/bin/bash
SOURCE_DIR=/home/jenkins/.jenkins/workspace/${JOB_NAME}/
DEST_DIR=/home/wwwroot/default
REMOTE_IP=Host2
/usr/bin/rsync -e "ssh -p 22" -avpgolr --delete--exclude=.git --exclude=env $SOURCE_DIRroot@$REMOTE_IP:$DEST_DIR
说明:
SOURCE_DIR 指客户端的目录,记得一定要在后面加"/";
DEST_DIR指服务器端的目录;
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD。
-v, --verbose 详细模式输出
-p, --perms 保持文件权限。
-g, --group 保持文件属组信息。
-o, --owner 保持文件属主信息。
-l, --links 保留软链结。
-r, --recursive 对子目录以递归模式处理。
--delete 删除那些DST中SRC没有的文件。
--exclude=PATTERN 指定排除不需要传输的文件模式。
--progress 是指显示出详细的进度情况
更多推荐
所有评论(0)