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