Hadoop-ssh免密碼登錄原理

在配置hadoop中,經常會有好幾臺機器組成一個分佈式集羣,各個機器之間的通信通常需要使用ssh的方式進行連接。正常情況下,我們連接登錄機器的時候是需要輸入IP、用戶名、密碼等等的信息,但是由於經常需要頻繁地連接,因此若每次都需要輸入這些信息那就太過繁瑣了,因此最好將集羣各個機器配置免密碼登錄。下面簡單將一下免密碼登錄的原理:


首先講一下計算機網絡安全中的加密機制,當前的加密類型可以概括爲量大類,一類是對稱密碼算法,一類是非對稱密碼算法。所謂對稱與非對稱主要是指加密和解密時使用的密鑰是否一致,若一致則爲對稱密碼算法,若不一致則爲非對稱密碼算法。對稱密碼算法的主要優點是加密速度快,但是安全性相對較差,使用與對安全性要求不那麼高的大文件進行加密;而非對稱密碼算法的主要優點是安全性極高,確定是加密速度較慢,不適合大文件的加密場景;當然現在有很多加密方案會同時結合這兩種類型的密碼算法,既能兼顧到加密的速度,又能考慮到安全性的問題。


在ssh免密碼登錄的應用中,主要是非對稱密碼算法。通常每臺機器都有自己的一對密鑰,一個我們稱爲公鑰,一個我們稱爲私鑰,無論用哪個對數據進行加密,解密時候都需要另外的一個密鑰。但是公鑰是公開的,也就是說任何人都可以通過合法的手段獲取到,但是私鑰是私密的,其他人是無法獲得的。使用公鑰加密、私鑰解密的方式經常用於加密場景,而使用私鑰加密、公鑰解密的方式經常用於身份驗證、數字簽名等。


下面我們具體看一下下面這個圖,spark01中會有一個授權列表文件authorized_keys文件,這裏面需要保存weekend110的一個公鑰副本。首先weekend110要請求登錄spark01,這時候spark01會查看本地的授權列表,若找到weekend110的公鑰,則用此公鑰加密一個隨機字符串發送給weekend110,weedkend110收到後使用自己的私鑰進行解密,解密結果再發給spark01, spark01收到後驗證時候與剛剛自己產生的隨機字符串相同,若相同則通過驗證,完成登錄。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章