Centos7 配置ssh免密登陸以及遇到的問題
同樣以Ubuntu為例,假設使用者名稱為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是用於認證的公鑰檔案。
至此免密碼登入本機已配置完畢。
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
這說明已經安裝成功,第一次登入時會詢問是否繼續連結,輸入yes即可進入。
實際上,在Hadoop的安裝過程中,是否免密碼登入是無關緊要的,但是如果不配置免密碼登入,每次啟動Hadoop都需要輸入密碼以登入到每臺機器的DataNode上,考慮到一般的Hadoop叢集動輒擁有數百或上千臺機器,因此一般來說都會配置SSH的免密碼登入。
遇到的問題 : too many arguments
這個是因為 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 中間加了一個空格 ~/ .ssh