Rsync 傳輸不需要輸入密碼


1、背景

1)        一個作為服務器端:VM3(IP: 3.9.8.151)

2)        一個作為客戶端:VM2(IP: 3.9.8.157)

3)        服務器端和客戶端網絡能夠互相ping通

4)        服務器端和客戶端都已安裝 rsync

要求:將VM3的/root/backup/目錄下的所有文件 復制到 VM2 的/root/test/目錄下。

2、操作

1)        用ping命令檢測服務器端和客戶端的網絡互通性

VM3  ping  VM2 成功

   

VM2  ping  VM3 成功

   

VM2 和 VM3 網絡互通

2)        服務端VM3新建並修改rsync配置文件

# vim /etc/rsyncd.conf

   

              Uid = nobody

              Gid = nobody

              Use chroot = no

              Max connections = 4

              Pid file = /var/run/rsyncd.pid

              Lock file = /var/run/rsyncd.lock

              Log file = /var/log/rsyncd.log

 

              [cms]

              Path = /root/backup

              Read only = true

              List = false

              Auth users = root

              Secrets file = /etc/rsyncd.secrets

             

該文件是由一個或多個模塊結構組成。一個模塊定義以方括弧中的模塊名開始,直到下一個模塊定義開始或者文件結束,模塊中包含格式為name = value的參數定義。每個模塊其實就對應需要備份的一個目錄樹。

 

全局參數

Uid: 該選項指定當該模塊傳輸文件時守護進程應該具有的uid,配合gid選項使用可以確定哪些可以訪問怎么樣的文件權限,默認值是"nobody"。

Gid: 該選項指定當該模塊傳輸文件時守護進程應該具有的gid。默認值為"nobody"。

Use chroot: 如果"use chroot"指定為true,那么rsync在傳輸文件以前首先chroot到path參數所指定的目錄下。這樣做的原因是實現額外的安全防護,但是缺點是需要以roots權限,並且不能備份指向外部的符號連接所指向的目錄文件。默認情況下chroot值為true。

Max connection: 指定該模塊的最大並發連接數量以保護服務器,超過限制的連接請求將被告知隨后再試。默認值是0,也就是沒有限制。

pid file:指定rsync的pid文件。

Lock file: 指定支持max connections參數的鎖文件,默認值是/var/run/rsyncd.lock

log file: 指定rsync的日志文件,而不將日志發送給syslog。

 

模塊參數

Cms: 模塊名,名字可以隨意取,之后的客戶端rsync命令將調用這個名字。

path: 指定該模塊的供備份的目錄樹路徑,該參數是必須指定的.

Read only: 該選項設定是否允許客戶上載文件。如果為true那么任何上載請求都會失敗,如果為false並且服務器目錄讀寫權限允許那么上載是允許的。默認值為true。

List: 該選項設定當客戶請求可以使用的模塊列表時,該模塊是否應該被列出。如果設置該選項為false,可以創建隱藏的模塊。默認值是true。

Auth users:該選項指定由空格或逗號分隔的用戶名列表,只有這些用戶才允許連接該模塊。這里的用戶和系統用戶沒有任何關系。如果"auth users"被設置,那么客戶端發出對該模塊的連接請求以后會被rsync請求challenged進行驗證身份這里使用的challenge/response認證協議。用戶的名和密碼以明文方式存放在"secrets file"選項指定的文件中。默認情況下無需密碼就可以連接模塊(也就是匿名方式)。

Secrets file: 該選項指定一個包含定義用戶名:密碼對的文件。只有在"auth users"被定義時,該文件才有作用。文件每行包含一個username:passwd對。一般來說密碼最好不要超過8個字符。沒有默認的secures file名,需要限式指定一個。(例如:/etc/rsyncd.secrets)

              以上參照:http://blog.csdn.net/xujingzhong0077/article/details/51993514

             

              注意:設置后要測試配置的目錄是否存在,如要確認/var/run/目錄,/var/log/目錄,/root/backup/目錄。/etc/rsyncd.secrets將會在下一步配置

3)        服務端VM3新建並修改rsync配置文件

# vim /etc/rsyncd.secrets

   

Root:redhat

以 用戶名:密碼 的格式。這個是服務器端的認證用戶名密碼。

   

4)      服務端VM3  修改/etc/rsyncd.secrets權限,只能是root用戶可讀寫

# chmod 600 /etc/rsyncd.secrets

   

  

5)    服務端VM3    以daemon方式啟動rsync

# rsync –daemon

   

6)        服務端VM3檢查端口,以及服務

# ps –ef | grep rsync

檢查服務是否以daemon方式啟動,若不是,kill掉進程,重新以daemon方式啟動

   

# netstat –ntlp

檢查服務啟動后,是否有監聽873端口,端口873是rsync的默認端口。

   

# service iptables stop

關閉防火牆

或者

# vim /etc/sysconfig/iptables

添加

-A INPUT -m state –state NEW -m tcp -p tcp –dport 873 -j ACCEPT

允許873端口通過防火牆

# service iptables restart

重啟防火牆

 

查看/etc/rsyncd.secrets 文件權限是不是只用root用戶可讀寫

   

以上配置及檢查完畢,則服務端就可以了,等待客戶端連接,拷貝文件。

7)        客戶端VM2 配置密碼文件

# vim /etc/rsync.pass

Redhat

   

  

8)        客戶端VM2 密碼文件/etc/rsync.pass,修改權限,只能是root用戶可讀寫

# chmod 600 /etc/rsync.pass

   

  

9)        客戶端VM2 用命令連接服務端拷貝文件

# rsync –arvz –P root@3.9.8.151::cms /root/test/ --password-file=/etc/rsync.pass

   

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM