SSH 爲 Secure Shell 的縮寫,由 IETF 的網絡小組(Network Working Group)所制定;SSH 爲創建在應用層基礎上的安全協議。SSH 是目前較可靠,專爲遠程登陸會話和其餘網絡服務提供安全性的協議。利用 SSH 協議能夠有效防止遠程管理過程當中的信息泄露問題。SSH最初是UNIX系統上的一個程序,後來又迅速擴展到其餘操做平臺。SSH在正確使用時可彌補網絡中的漏洞。SSH客戶端適用於多種平臺。幾乎全部UNIX平臺—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其餘平臺,均可運行SSH。linux
經過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服務器
管理機m01:網絡
NFS服務器nfs01:ssh
WEB服務器web01:測試
[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請看個人下一篇博文.