1. 程式人生 > >Centos7 配置ssh免密登陸以及遇到的問題

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

[email protected]:~$

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

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

 

遇到的問題  :   too many arguments

這個是因為 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys        中間加了一個空格  ~/ .ssh