1. 程式人生 > >配置叢集模式下的ssh免密碼登入

配置叢集模式下的ssh免密碼登入

在使用hadoop配置叢集模式時,必然要使用ssh進行各個機器之間的免密碼登入。

環境準備:

  叢集模式下會有多個主機,而本教程使用的主機名和IP地址如下:

192.168.1.160    master
192.168.1.161    slave1

一、安裝ssh服務:

  若系統中沒有安裝ssh服務,則要在每臺機器中都安裝ssh服務

  redhat,fedora,centos等系列linux發行版,命令如下:

sudo yum install sshd

  debian,ubuntu,linux mint等系列的linux發行版,命令如下:

sudo apt-get install sshd

  按照提示安裝之後,需要開啟ssh服務

sudo service sshd start

  檢視ssh服務狀態

sudo service sshd status

二、生成公鑰和私鑰

  本節中需要使用ssh中的兩個命令:ssh-keygen  產生公鑰與私鑰對,ssh-copy-id 將本機的公鑰複製到遠端機器的authorized_keys檔案中

  首先修改hosts檔案,vi /etc/hosts,如下:

#127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
#::
1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.1.160 master 192.168.1.161 slave1

  登入master,使用rsa演算法生成公鑰和私鑰:

ssh-keygen -t rsa 

  進入~/.ssh目錄,可看到已經生成私鑰id_rsa,公鑰id_rsa.pub

cd ~/.ssh
id_rsa  id_rsa.pub 

三、對其他使用者進行授權  

  新建authorized_keys檔案,將master的公鑰id_rsa.pub內容追加到authorized_keys檔案中,注意是追加,而不是覆蓋

cat id_rsa.pub >> authorized_keys

  使用ssh登入master時,只要authorized_keys檔案中儲存有master的公鑰資訊,即可實現免密登入。同理,登入salve1時也需要authorized_keys檔案中有slave1的公鑰資訊。

  登入slave1,同樣使用ssh-keygen產生公鑰和私鑰對,使用ssh-copy-id將slave的公鑰追加到master的authorized_keys檔案中

ssh-copy-id -i master  #將slave的公鑰追加到master的authorized_keys檔案中

  登入master,將authorized_keys檔案拷貝到slave1上,命令如下:

scp ~/.ssh/authorized_keys slave1:~/.ssh/ #拷貝到slave1上,需要輸入使用者名稱和密碼