Linux之SSH密鑰認證

一、SSH協議的認識

SSH 爲 Secure Shell 的縮寫,由 IETF 的網絡小組(Network Working Group)所制定;SSH 爲創建在應用層基礎上的安全協議。SSH 是目前較可靠,專爲遠程登陸會話和其餘網絡服務提供安全性的協議。利用 SSH 協議能夠有效防止遠程管理過程當中的信息泄露問題。SSH最初是UNIX系統上的一個程序,後來又迅速擴展到其餘操做平臺。SSH在正確使用時可彌補網絡中的漏洞。SSH客戶端適用於多種平臺。幾乎全部UNIX平臺—包括HP-UXLinuxAIXSolarisDigital UNIXIrix,以及其餘平臺,均可運行SSH。linux

二、經過SSH管理遠程服務器

經過SSH協議,用戶能夠經過終端機訪問和使用遠程linux服務器,ssh的端口爲22。但每次進行鏈接都要輸入密碼。若是管理幾臺到十幾臺集羣,那能夠應付的的過來。若是集羣增長了幾百,上千臺。那麼使用SSH管理起來就不方便了。因此SSH有沒有更簡便的方法呢?有的,在linux集羣中,由一臺管理機經過SSH管理其它的遠程linux服務器,這種方法被稱爲SSH密鑰認證管理服務器。原理以下圖:git

 

三、服務器的佈署和劃分

管理機:172.16.1.61 m01web

NFS服務器: 172.16.1.31 nfs01安全

WEB服務器: 172.16.1.8 web01服務器

四、首先檢查管理機和被管理機上的SSH是否已經安裝和啓用

管理機m01:網絡

NFS服務器nfs01:ssh

WEB服務器web01:測試

 

 

四、首先在m01服務器上,建立密鑰對:公鑰和私鑰

 

[root@m01 ~]# ssh-keygen -t dsa

以下圖所示:提示輸入是否確認,全部的提示按Enter鍵.spa

查看是否密鑰建立成功,密鑰生成後,保存在/root/.ssh/下,這是一個隱藏目錄。3d

其中:id_dsa是私鑰,id_dsa.pub是公鑰

由上圖所見咱們已經建立密鑰成功

五、把公鑰拷貝到全部被管理機中

將公鑰拷貝到nfs01服務器中,使用命令ssh-copy-id 。由於我更改過nfs01的ssh端口,由端口22變爲端口52113.因此要添加"-p 52113"。拷貝到web01也是同理

[root@m01 ~]# ssh-copy-id -i ./.ssh/id_dsa.pub "-p 52113 oldboy@172.16.1.31"

以下圖提示,第一次拷貝要輸入確認yes和oldboy賬號的密碼。

查看nfs01上面是否拷貝成功,拷貝的文件在oldboy家目錄下的隱藏目錄.ssh下

六、測試

a.在m01上遠程執行nfs01上的命令

 

[root@m01 ~]# ssh -p 52113 oldboy@172.16.1.31 "/sbin/ifconfig eth0"

b.從m01上拷貝文件到nfs01上

查看nfs01上是否拷貝過去

七、總結

a.SSH建立密鑰後,公鑰發送給各個被管理的服務器中。

b.除了第一次發送公鑰後,須要密碼,其餘遠程操做再也不須要密碼。

另外:每次鏈接一個新的服務器都要手動確認和輸入密碼,也是不通常的麻煩。那有沒有一種方法不須要手動確認和輸入密碼?有的,那就是expect程序。

關於expect請看個人下一篇博文.

相關文章
相關標籤/搜索