Hadoop過程中配置SSH免密碼登入

wzhalal發表於2017-12-30

假設使用者名稱為u:


1)確認已經連線上網際網路,然後輸入命令:


sudo apt-get install ssh


2)配置為可以免密碼登入本機。首先檢視在u使用者下是否存在.ssh資料夾(注意ssh前面有“.”,這是一個隱藏資料夾),輸入命令:


ls –a /home/u


一般來說,安裝SSH時會自動在當前使用者下建立這個隱藏資料夾,如果沒有,可以手動建立一個。


接下來,輸入命令(注意下面命令中不是雙引號,是兩個單引號):


ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa


解釋一下,ssh-keygen代表生成金鑰;-t(注意區分大小寫)表示指定生成的金鑰型別;dsa是dsa金鑰認證的意思,即金鑰型別;-P用於提供密語;-f指定生成的金鑰檔案。


在Ubuntu中,~代表當前使用者資料夾,此處即/home/u。


這個命令會在.ssh資料夾下建立id_dsa及id_dsa.pub兩個檔案,這是SSH的一對私鑰和公鑰,類似於鑰匙和鎖,把id_dsa.pub(公鑰)追加到授權的key中去。


輸入命令:


cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys


這條命令的功能是把公鑰加到用於認證的公鑰檔案中,這裡的authorized_keys是用於認證的公鑰檔案。


至此免密碼登入本機已配置完畢。

注意:修改修改.ssh目錄的許可權以及authorized_keys 的許可權(這個必須修改,要不然還是需要密碼)
 
 chmod 644 ~/.ssh/authorized_keys
 
 chmod 700 ~/.ssh
 

如果涉及給別的機器,A將公鑰發給B,不是說讓B來訪問A,而是A就可以訪問B了。也就是說B不能在.ssh資料夾下的authorized_keys保留A的公鑰,如儲存就是把自己讓給別人來訪問!如果這個理解反了,那就會總是不成功!




3)驗證SSH是否已安裝成功,以及是否可以免密碼登入本機。


輸入命令:


ssh –version


顯示結果:


OpenSSH_5.8p1 Debian-7ubuntu1, OpenSSL 1.0.0e 6 Sep 2011


Bad escape character 'rsion'.


顯示SSH已經安裝成功了。


輸入命令:


ssh localhost


會有如下顯示:


The authenticity of host 'localhost (::1)' can't be established.


RSA key fingerprint is 8b:c3:51:a5:2a:31:b7:74:06:9d:62:04:4f:84:f8:77.


Are you sure you want to continue connecting (yes/no)? yes


Warning: Permanently added 'localhost' (RSA) to the list of known hosts.


Linux master 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2011 i686


To access official Ubuntu documentation, please visit:


http://help.ubuntu.com/


Last login: Sat Feb 18 17:12:40 2012 from master


admin@Hadoop:~$


這說明已經安裝成功,第一次登入時會詢問是否繼續連結,輸入yes即可進入。


實際上,在Hadoop的安裝過程中,是否免密碼登入是無關緊要的,但是如果不配置免密碼登入,每次啟動Hadoop都需要輸入密碼以登入到每臺機器的DataNode上,考慮到一般的Hadoop叢集動輒擁有數百或上千臺機器,因此一般來說都會配置SSH的免密碼登入。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28894640/viewspace-2149509/,如需轉載,請註明出處,否則將追究法律責任。

相關文章