2007年6月9日 星期六

Linux的異地備份(Offsite Backup)(2)

筆者在前一篇寫了有關於rsync的應用,這一篇則是要利用ssh的公鑰來達成免輸入密碼的遠端登入,因為自動排程時,人無法一直在電腦前面,所以這個動作就是重要的了

其實筆者在之前也有看過類似公鑰與私鑰的應用,不過一直到真的接觸了Linux後,才真的比較有機會能夠實做,真的有需求時才會真正實踐它

好了!其它就不多說了,就開始來進行吧!

首先來介紹一下ssh,它其實算是一種加密法,常應用於傳輸資料時,對傳遞資料加以保護,由此可知在網路上如果利用明碼來傳送資料,是一件多危險的事!

所以現在金融機構的網站,有許對也是利用https(http+ssl)來做一種保護的手段,不過ssh並不是代表它就是安全的,因為它加密的是傳送的資料,本身服務也是具有危險性的,千萬不要 讓所有主機都能夠利用ssh來登入,否則危險性極大

因為筆者是在區網中做資料的備援,故這一方面的影響較小,同時也在主機端上有加設登入的限制,例如特定網段、ip及使用者才可登入的保護(例如sshd_config、etc/host.allow(deny)和iptables),這裡就不再多加闡述

接下來就只要產生出公鑰與私鑰即可,建立的方法如下:

1. 在Client端利用ssh-keygen建立公鑰與私鑰
2. 私鑰放在Client端使用者家目錄中.ssh資料夾(/home/.ssh)
3. 公鑰放到Server端使用者家目錄中.ssh資料夾中,並更名authorized_keys

執行步驟如下:

1. 從192.168.1.x (Client端)傳送至192.168.1.99(Server端),所以我們就在Client端打入ssh-keygen可以產生公、私鑰

2. 因為key是在Client端上產生的,所以預設已把key放到/home/.ssh/下,而id_rsa(私鑰)與id_rsa.pub(公鑰)

3. 利用scp(ssh傳檔指令)把公鑰傳至Server端的root家目錄
scp /home/.ssh/id_rsa.pub root@192.168.1.99:~/

4. 更動檔案名稱,將id_rsa.pub更名為authorized_keys
cat id_rsa.pub >> ~/.ssh/authorized_keys (>>是導向符號)

5. 測試Client登入
ssh root@192.168.1.99(如果不需密碼即可登入,就成功了)

經由筆者接連這兩篇的文章,希望能夠幫助跟我一樣在Linux上需製作備援主機的人,能夠取得一個適當的方式來處理,當然也有其它的替代方式,歡迎一起討論喔!