1. 程式人生 > >Linux之SSH密鑰認證

Linux之SSH密鑰認證

onf data- 啟用 般的 aid com 通過 進行 登錄

1、SSH協議的認識

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

2、通過SSH管理遠程服務器

通過SSH協議,用戶可以通過終端機訪問和使用遠程linux服務器,ssh的端口為22。但每次進行連接都要輸入密碼。如果管理幾臺到十幾臺集群,那可以應付的的過來。如果集群增加了幾百,上千臺。那麽使用SSH管理起來就不方便了。所以SSH有沒有更簡便的方法呢?有的,在linux集群中,由一臺管理機通過SSH管理其它的遠程linux服務器,這種方法被稱為SSH密鑰認證管理服務器。原理如下圖:

技術分享圖片

3、服務器的布署和劃分

管理機:172.16.1.61 m01

NFS服務器: 172.16.1.31 nfs01

WEB服務器: 172.16.1.8 web01

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

管理機m01:

技術分享圖片

NFS服務器nfs01:

技術分享圖片

WEB服務器web01:

技術分享圖片

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

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

如下圖所示:提示輸入是否確認,所有的提示按Enter鍵.

技術分享圖片

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

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

技術分享圖片

由上圖所見我們已經創建密鑰成功

5、把公鑰拷貝到所有被管理機中

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

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

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

技術分享圖片

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

技術分享圖片

6、測試

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

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

技術分享圖片

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

技術分享圖片

查看nfs01上是否拷貝過去

技術分享圖片

7、總結

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

b.除了第一次發送公鑰後,需要密碼,其他遠程操作不再需要密碼。

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

關於expect請看我的下一篇博文.

Linux之SSH密鑰認證