hadoop中的ssh無密碼登入配置

2021-06-09 15:47:55 字數 1679 閱讀 6855

目標:

在配置hadoop分布式安裝過程中,需要配置ssh的無密碼登入。在組建hadoop集群的時候,需要多台實體機進行通訊(傳送或者讀取資料,namenode和datanode之間)就是借助ssh,在通訊過程中如果需要操作人員頻繁輸入密碼是不切實際的,所以需要ssh的無密碼登入。

環境:

配置:首先請確保防火牆都處於關閉狀態,具體命令是ufs disable。並確保安裝ssh spenssh-server。

在主機qiuchenl0中執行以下命令:

cd ~/.ssh     (進入使用者目錄下的隱藏檔案.ssh)

ssh-keygen -t rsa   (用rsa生成金鑰)

cp id_rsa.pub authorized_keys   (把公鑰複製乙份,並改名為authorized_keys,這步執行完,應該ssh localhost可以無密碼登入本機了,可能第一次要密碼)

scp authorized_keys

qiuchenl@qiuchenl1:/home/qiuchenl/.ssh  (把重新命名後的公鑰通過ssh提供的遠端複製檔案複製到從機qiuchenl1上面)

chmod 600 authorized_keys    (更改公鑰的許可權,也需要在從機qiuchenl1中執行同樣**)

ssh qiuchenl1  (可以遠端無密碼登入qiuchenl1這台機子了,注意是ssh不是sudo ssh。第一次需要密碼,以後不再需要密碼)

注意:

在安裝分布式hadoop過程中,需要將所有機子的使用者名稱改為一樣,如我的例子:qiuchenl。在linux下,有「主機名」和「使用者名稱」之分。「主機名」相當與機子的ip,是該機子的唯一標識(可以用命令hostname來檢視本機主機名),而乙個作業系統可以有多個使用者,每個使用者都有使用者名稱,如我的qiuchenl(root也是乙個使用者,只不過許可權比較大)。

我們如果要訪問其他主機,都是通過對方的ip來訪問,比如ping 192.168.2.166.既然主機名也是標識,為什麼不能ping qiuchenl0呢。因為當前機子步識別這個主機名,需要修改/etc/profile檔案如下:

下面回歸正題,ssh遠端登入其他機子,是登入那個機子的某個使用者,所以在上面的第四步 我是把公鑰檔案拷貝到qiuchenl1主機下的qiuchenl使用者,所以我只能遠端控制該使用者。再看上面第6步,要登入qiuchenl1的qiuchenl使用者,命令應該是ssh qiuchenl@qiuchenl1,為什麼是ssh qiuchenl1就可以呢。因為ssh qiuchenl1 會預設以當前主機的使用者名稱(也就是qiuchenl0的qiuchenl)來遠端登入。因為qiuchenl0和qiuchenl1兩個機子的使用者名稱都是qiuchenl,所以可以用ssh qiuchenl1代替 ssh qiuchenl@qiuchenl1.如果qiuchenl1這台主機沒有qiuchenl這個使用者,那麼ssh qiuchenl1就無法使用。

最後:

既然可以用ssh qiuchenl@qiuchenl1 代替ssh qiuchenl1,就沒有必要讓hadoop每台自己的使用者名稱一樣。這樣想是不對的。因為ssh遠端無密碼登入可以用ssh qiuchenl@qiuchenl1。但是hadoop內部是不會這樣智慧型處理的。所以在配置hadoop集群時,要把所有機子的使用者名稱設定一樣。

使用ssh keygen實現SSH無密碼登入

假設 server node001 192.168.189.33 server node002 192.168.189.34 實現 node001和node002 互相免密匙 要點 要是 cd 後ls al 發現沒有.ssh資料夾只需要在本機ssh node001 即可自動生成.ssh資料夾 要對哪...

安裝hadoop之ssh無密碼登入

為了更快的了解我們延云云計算公司的產品延雲ydb,需要我們熟練安裝hadoop產品,這裡介紹下安裝之前很重要的一步ssh無密碼登入的步驟 1.首先要ssh建立秘鑰 ssh keygen 回車後直接生成一對秘鑰 id rsa 和id rsa.pub 2.接下來就要把id ras.pub追加到key裡邊...

ssh無密碼登入

若想登入對方主機,而不需要輸入密碼,操作如下 首先在自己主機上執行 ssh keygen t rsa 三次回車 在 ssh生成公私鑰 id rsa.pub id rsa 將id rsa.pub拷貝到對方的 ssh中 記得重新命名,如my.pub 在對方的.ssh中新建乙個authosized key...