Linux SSH免密碼登入配置 由於學習hadoop,叢集之間需要SSH無密碼登入,那麼,在安裝hadoop之前,就必須得配置好機器之間的無密碼的SSH登入。如何配置無密碼SSH登入呢? 我們以在A機器上無密碼登入到B機器上為例: 1、切換到需要用來登入的使用者,如,我們用A機器名為hadoop的使用者登入B機器的hadoop使用者下。 www.2cto.com su hadoop 切換到hadoop 使用者。 2、給兩台機器分別改主機名稱:這裡 A:master B:slave1: 修改這個檔案etc/sysconfig/network這個檔案裡的主機名稱. NETWORKING=yes HOSTNAME=主機名稱 記得重啟!!! 並修改hosts映射: vi /etc/hosts www.2cto.com Java代碼 192.168.1.60 master 192.168.1.61 slave1 192.168.1.62 slave2 寫上對應的IP 和主機名稱 2、A機器:產生rsa公開金鑰: ssh-keygen -t rsa -f ~/.ssh/id_rsa //-t 加密類型 -f 密鑰檔案存放路徑,如果如下: Java代碼 [hadoop@master ~]$ ssh-keygen -t rsa -f ~/.ssh/id_rsa Generating public/private rsa key pair. Created directory '/home/hadoop/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/hadoop/.ssh/id_rsa. Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub. The key fingerprint is: e9:ab:f0:48:af:2d:d4:98:59:68:bc:3d:52:3e:94:bc hadoop@master The key's randomart image is: +--[ RSA 2048]----+ | | | | | . o . | | + * . | | . % .S | | B E. | | .o. o. | | ..* . | | oo=.. | +-----------------+ [hadoop@master ~]$ cd .ssh 同樣在B機器上執行第二部操作。 3、將A機器 /home/hadoop/.ssh/下的 id_rsa.pub 傳輸到 B機器的 /home/hadoop/.ssh/ 並重新命名為master Java代碼 [hadoop@master .ssh]$ scp id_rsa.pub hadoop@slave1:/home/hadoop/.ssh/master hadoop@slave1's password: id_rsa.pub 100% 395 0.4KB/s 00:00 4、切換到B機器,使用hadoop使用者登入,將傳過來的master 追加到名為 authorized_keys 的檔案,使用 cat master >> authorized_keys //不存在,則會自動建立 5、修改許可權,將authorized_keys、id_rsa.pub的許可權修改為644 Java代碼 [hadoop@slave1 .ssh]$ chmod 644 id_rsa.pub [hadoop@slave1 .ssh]$ chmod 644 authorized_keys 此時,SSH免密碼登入配置成功 測試,此時,在A機器下使用 Java代碼 [hadoop@master .ssh]$ ssh slave1 Last login: Mon Mar 4 22:23:06 2013 from master [hadoop@slave1 ~]$ 沒提示輸入密碼,配置成功 www.2cto.com