linux ssh rsync

SSH

 

主要用以下三個功能組件

        

1.ssh遠程登錄  Windows下的SecureCRTPutty

2.sftp文件共享  (FTP)  SSH Secure FileTransfer Client

3.scp 文件共享 (cp拷貝)

 

一、準備環境

         兩臺電腦

         1.WebServer:   192.168.66.131        這是一臺在機房的服務器

         2.MyPC:            192.168.66.132        這是我們自己的工作電腦

        

         克隆後IP獲取問題,詳見第一天的CentOS實驗整理。

        

      二、Linux下遠程登錄

         格式:

                   ssh用戶名@地址

                  不允許空密碼,很多Linux禁止root遠程SSH登錄

        

         常見選項

                   -2表示使用SSH版本號

                   -p指定端口

 

                  ssh -2 用戶名@地址    (建議使用)

                  ssh -2 -p 端口號用戶名@地址

 

         我們在使用Putty時,也可以在Connection中選擇使用什麼版本

         配置文件:

         vi/etc/ssh/sshd_config

         Port22   這是ssh的端口號,默認是註釋掉的,去掉#號,就可以改了

         PermitRootLoginno         這樣就能禁止root遠程登錄

        

         重啓服務

         servicesshd restart

三、sftp文件共享(瞭解)

         Linux下命令行:

         sftp用戶名@主機地址

                   連上去後可執行 ls  get  put help bye

        

         很少用命令行,我們經常在Windows下用客戶端軟件:

                   WinSCP(同時支持SCP協議)

                   SSH Secure File TransferClient (安裝SSH.Secure.Shell.Client_3.2.9.exe)

        

四、scp 文件共享(推薦使用)

        

         1、本機拷貝到遠程主機用法:

         scp 本地文件用戶名@ip地址:遠程主機上的目錄

         scp -r 本地目錄用戶名@遠程主機ip:遠程主機上的目錄

 

         scp --help查看幫助

 

         inittab文件傳到另一臺主機的/root目錄中:

         scp /etc/[email protected]:/root

 

         2、從遠程主機拷貝到本地:

         scp 用戶名@遠程主機地址:遠程文件本地目錄

         scp -r 用戶名@遠程主機地址:遠程目錄本地目錄

        

         常用選項

         -p 保持原有文件屬性  (建議加上)

         -r 複製目錄

         -P 指定端口

 

五、ssh信任(非對稱加密)

對稱密鑰加密               密鑰yue

         加密解密使用同一密碼

         速度快

         密鑰本身需要交換(這就不安全了)

 

非對稱密鑰加密

         也稱公開密鑰加密,會同時生成兩個密鑰

         一個公開出去(公鑰),一個私人持有(私鑰)

         用其中一個密鑰加密的數據,只有用另一個密鑰才能解密

 

         公鑰加密->私鑰解密  (加密文件時使用參見“openssl命令行進行RSA加密解密.txt

         私鑰加密->公鑰解密  (驗證身份,數字簽名) 讓服務器信任後,使用SSH時,就不用驗證密碼了

        

         非對稱密鑰加密特點:

         安全性好

         速度慢

 

 

疑問:scp是需要輸入密碼的,如何建立信任關係?

 

        

         測試環境:

                   遠程服務器ip192.168.88.88,用戶爲webadmin

                   本地電腦用戶爲root

         目的:本機root登錄後,可以直接以webadmin身份操作遠程服務器,不需要驗證密碼

 

         原理:讓對方(遠程服務器)信任我的公鑰

        

         1、本機生成密鑰對:(例如當前登錄用戶爲 root)

         ssh-keygen-t rsa  全部回車即可

         RSA公鑰加密算法是1977年由美國麻省理工學院開發的會提示生成的公鑰 id_rsa.pub 已生成 ,即是該用戶默認的 RSA 身份認證公鑰(SSH-2)

 

         2、將公鑰拷貝至遠程主機

         scp/root/.ssh/id_rsa.pub [email protected]:/home/webadmin

         此時還是需要驗證密碼的,webadmin是遠程主機192.168.88.88上的普通用戶

 

         3、到遠程主機做信任操作

         ssh-2 [email protected]

         cd~   來到用戶宿主目錄

         ls-a  如果沒有.ssh目錄,則創建

         mkdir.ssh

         catid_rsa.pub >> .ssh/authorized_keys#加入到認證信息,用的是追加,可以保存多個信任用戶

         chmod700 .ssh                                             # 新版本的ssh要求這個目錄的權限必須是700

         chmod600 .ssh/authorized_keys             # 新版本的ssh要求這個文件的權限必須是600

 

         4、回到MyPC本機測試

         [email protected]    不需要密碼,直接登錄成功

         那麼通過scp拷貝文件,也不需要密碼了

        

         注意:

         在本機中由於是root用戶生成公鑰,所以只要在本機上,只有使用root用戶以webadmin身份操作遠程主機纔是信任的。

                  如果本機不是root用戶,或不指定以webadmin用戶操作遠程主機,依然需要密碼。

         ssh [email protected] ,嘗試以root身份登錄遠程主機,還是要輸入密碼

 

六、rsync數據鏡像備份工具

 

         WebServerMyPC上都要安裝rsync,其中WebServer服務器上是以服務器模式運行rsync

         MyPC上則以客戶端方式運行rsync。這樣在web服務器上運行rsync守護進程,

         MyPC上定時運行客戶程序來備份WebServer服務器上需要備份的內容到MyPC

 

         方便的增量備份實現

         可鏡像保存整個目錄樹和文件系統

         保存文件權限、時間、軟硬鏈接等

         文件傳輸效率高(可壓縮傳輸)

         可以使用ssh加密通道

        

1、準備環境

         WebServer:

 

         服務是xinetd進程託管方式

         默認都已安裝,檢查是否已安裝

                   rpm -q rsync

 

         啓動服務默認不啓用

         ls /etc/xinetd.d

         vi /etc/xinetd.d/rsync

                  修改disable = no  保存退出編輯器

         service xinetd restart      重啓xinetd託管服務

                   若提示xinetd: 未被識別的服務,則說明/etc/rc.d/init.d下無xinetd

                   yum -yinstall xinetd*                #安裝xinetd

                   ps -le |grepxinetd                    #查看是否啓動成功

 

         MyPC:

 

         MyPC中,想要同步服務器上的一個目錄到本機測試一下

         rsync -arHz --progress--delete [email protected]:/website /backup

         注意:webadmin是服務器上的用戶,請確定webadmin有訪問服務器/website目錄的權限

         本機MyPC登錄用戶,要有操作/backup的權限

 

         如果重複執行,只會操作有改變的文件,如新加的文件或刪除的文件,備份目錄同步操作

        

         參數說明

         -a               保持文件屬性

         -r                子目錄遞歸處理

         -H              保持文件硬鏈接  如果要備份的文件中沒有硬鏈接,也可以不加-H

         -z               備份文件傳輸時壓縮處理

         -essh                 使用ssh加密隧道傳輸

         --progress         在傳輸時顯示傳輸過程  可以不加

         --delete    刪除目標備份沒有的文件

        

         如果需要將MyPC中的目錄上傳到WebServer,本地目錄寫在前面即可

 

七、備份實例

定期將服務器上的/website目錄備份到本機

         每週日02:00   完全備份,以日期作爲目錄

         週一到週六02:00  做一次增量備份

爲什麼即要做增量備份,還要做完全備份?

這裏的增量備份,指的是目錄同步,跳過相同的文件,如果有文件被刪除,則也會刪除備份目錄中的,所以,需要定期做完全備份

 

         crontab-e

         0  2 *  *  0    /usr/bin/scp -rp [email protected]:/website /backup/website_$(date+%Y%m%d)

         0  2 *  *  1-6  /usr/bin/rsync -arHz --delete -e ssh [email protected]:/website/backup/web

        

         取當前日期

                   echo$(date +%F)   可查看date --help

                   echo$(date +%Y%m%d)

                   給變量賦值:

                   #a=5; echo $a;

                   #a=(`date +%F`)

                   #echo $a

 


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