筆者在前一篇寫了有關於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上需製作備援主機的人,能夠取得一個適當的方式來處理,當然也有其它的替代方式,歡迎一起討論喔!
看過《攻殼機動隊》(Ghost Shell)嗎?
回覆刪除多看幾遍以後,也許作這種事情會變得比較有趣喔,因為腦海中會浮現畫面...^^b
衝吧,四課!!!
我還真的沒有看過哩!
回覆刪除vincent大大下次分我看看吧!
我剛上去搜尋了一下,發現是部漫畫
該不會是跟matrix一樣吧!
探討人與機器之間的互動!!
也許這些事會變的有趣一點!!
噗,上一則留言有誤。
回覆刪除應該是「衝吧,(公安)九課!!!」
那末,神秘的「四課」是什麼呢?
喔...「庶務」四課...XD
ㄟ~我是有聽過庶務二課....四課是?
回覆刪除像我們這種打雜工嗎?orz
衝吧!(公安)九課感覺挺對岸的!
公安九課...是說啥咪呢?
跟我們這兒的條子伯伯有啥不同呀?
一整個亂七八糟
好啦好啦,我會借你攻殼機動隊看啦...^^b
回覆刪除喔耶~~
回覆刪除我就知道vincent最好了..攻殼機動隊
我就等動畫來看,也是我喜歡的內容
哈....
畢竟資源共享是好的呀!嘿~~等待中
不太懂為什麼不建議linux server都要加上ssh。只要你的私鑰保護好並停掉密碼驗證,再加上半年換一次公私錀,這種管理的安全性是極高的呀!如果server是要我坐在它前面才能操作的話,那我就不當系統管理員了。
回覆刪除你說的沒錯!
回覆刪除如果一定要在系統面前才能操作它的話!
那我想應該有很多人不願意吧!
不過,反之亦然,也有很多規模較大的公司,反而是非要在本機端才能操作server的(或是進入機房才可以),所以還是有所局限的吧!
至於所有服務都要加上ssh的話,我想這一點可能跟"人性"與便利性有關吧!
而且對於server本身的負載,以及一些不一定需要加密的服務,如果全都要用ssh的話,可能就太過了點(如果連看個yahoo新聞都要用https...)
而且真的在是用https來做連線時,應該會發現很明顯的速度較慢,這就是人性面了,且只有單方面得到資訊的服務,真的有跑ssh(tunnel)的必要嗎?
至於公私鑰的更換與應用,這一點真的是便利性極高沒錯,可惜的是...
國人對於資訊資料的使用習慣,經常會讓我們不敢茍同吧!
這就跟為什麼銀行常說,網路銀行交易的損失要自行吸收,銀行不願承擔該風險相同!!你說是嗎?
https = http + ssh ?
回覆刪除https 只是用到 SSL(Secure Socket Layer) 並無使用到 SSH(Secure Shell) . 這兩者雖然在連線過程中都會將資訊加密, 但是應用領域完全不同.
stormax:
回覆刪除多謝你的更正,其實我在寫ssh的相關應用時,也有發現到我先前的錯誤!(沒想到還有!)
多謝你的指正!我會馬上改的!其實已經有很多原本似乎不夠詳盡或嚴謹的內容,我會慢慢抓出來的!
但是有大家的幫忙,應該會更快發現我的錯誤!畢竟這就是我寫部落格的原因!
還是再三感謝!