ssh 密鑰登錄方法和rsync加密傳輸同步文件設置

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置。

一般採用源安裝,安裝後可能沒有配置文件(只有服器端才需要配置文件,客端是不需要配置配置文件的),需要在/etcrsyncd.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  是指示出詳細度情況


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章