作者:杜延振
日期:2016/3/29
1.在用戶目錄下執(zhí)行命令
ssh-keygen -t rsa
一路回車:
2.在當前用戶目錄下,進入.ssh文件夾(.ssh文件夾為隱藏文件夾浸剩,直接進去即可)。
在.ssh文件夾下執(zhí)行命令:
cat id_rsa.pub > authorized_keys
即把id_rsa.pub文件的內(nèi)容寫進authorized_keys文件中
此時運行命令:ll
查看生成的authorized_keys文件的權(quán)限喻奥,如果沒錯的話該文件應(yīng)該帶有寫權(quán)限纺阔,當有寫權(quán)限時瓷蛙,是不能進行無密鑰登陸的,因為此時不安全伟件。
修改authorized_keys文件的權(quán)限:
chmod go-xw -t authorized_keys
此時再執(zhí)行命令:ssh h2(因為我把本機的hostname改成了h2硼啤,所以ssh h2代表登陸本機,其中ssh后面應(yīng)改成你自己對應(yīng)的:可查看剛生成的文件authorized_keys
)
則不會再讓輸入密碼斧账。如下圖:
至此谴返,就實現(xiàn)了本機無密鑰登陸。
3.把剩余的機器在其對應(yīng)機器上重復(fù)步驟1咧织,2.
4.把各個機器上生成的authorized_keys文件的內(nèi)容合并成一個嗓袱,并用該文件替換每個機器上的authorized_keys文件,如圖:
至此即可實現(xiàn)各個機器之間無密鑰登陸
補充:若只是實現(xiàn)master免秘鑰登陸到slave節(jié)點习绢,只將master節(jié)點生成公鑰復(fù)制到各個slave節(jié)點就能實現(xiàn)目的渠抹。
原理:Master(NameNode | JobTracker)作為客戶端,要實現(xiàn)無密碼公鑰認證闪萄,連接到服務(wù)器Salve(DataNode |Tasktracker)上時梧却,需要在Master上生成一個密鑰對,包括一個公鑰和一個私鑰败去,而后將公鑰復(fù)制到所有的Slave上放航。當Master通過SSH連接Salve時,Salve就會生成一個隨機數(shù)并用Master的公鑰對隨機數(shù)進行加密圆裕,并發(fā)送給Master广鳍。Master收到加密數(shù)之后再用私鑰解密缺菌,并將解密數(shù)回傳給Slave,Slave確認解密數(shù)無誤之后就允許Master進行連接了搜锰。這就是一個公鑰認證過程,其間不需要用戶手工輸入密碼耿战。重要過程是將客戶端Master復(fù)制到Slave上蛋叼。