學習hadoop的時候啓動hadoop集羣需要免密登錄,手動臺蛋疼了,
所以總結了下,root用戶免密和普通用戶免密兩種方法.
root用戶
我有如下三臺Linux機器
192.168.13.102 centos102
192.168.13.103 centos103
192.168.13.105 centos105
1.修改hosts文件vi /etc/hosts如下:
192.168.13.102 centos102
192.168.13.103 centos103
192.168.13.105 centos105
2.在/root(即~)下看有沒有.ssh文件夾,ls -a查看,如果沒有則創建mkdir .ssh
3.進入.ssh文件夾,cd /root/.ssh
4.執行ssh-keygen -t rsa,三次回車
5.執行cat id_rsa.pub >> authorized_keys
6.其他兩臺機器103 105都執行1~4步驟,
7.centos103,centos105分別執行ssh-copy-id -i centos102 這行命令的意思是登錄centos102將公鑰拷貝到centos102中的authorized_keys中
8.回到centos102,執行more /root/.ssh/authorized_keys能看到如下則成功
9.修改authorized_keys權限爲600 chmod 600 authorized_keys
10.將授權文件分別拷貝到centos103,centos105
scp /root/.ssh/authorized_keys centos103:/root/.ssh/
scp /root/.ssh/authorized_keys centos105:/root/.ssh/
11.ssh centos103去免密登錄試試吧,exit退出.
非root用戶
1.vi /etc/ssh/sshd_config確保如下兩項是放開的(即去掉前面的#)
AuthorizedKeysFile .ssh/authorized_keys
PubkeyAuthentication yes
2.修改hosts文件vi /etc/hosts如下:
192.168.13.102 centos102
192.168.13.103 centos103
192.168.13.105 centos105
3.cd ~,看有沒有.ssh文件夾,ls -a查看,如果沒有則創建mkdir .ssh
4.進入.ssh文件夾,~/.ssh
5.執行ssh-keygen -t rsa,三次回車
6.執行cat id_rsa.pub >> authorized_keys
7.centos103,centos105分別執行1~5步驟
8.centos103執行
scp ~/.ssh/id_rsa.pub hadoop@centos102:~/.ssh/centos103.id_rsa.pub
期間會要求輸入centos102的hadoop賬號的密碼,輸入後傳輸完成,在node0的/home/hadoop/.ssh目錄下,多了個名爲 centos103.id_rsa.pub的文件;
9.centos105執行
scp ~/.ssh/id_rsa.pub hadoop@centos102:~/.ssh/centos105.id_rsa.pub
10.centos103,centos105分別把centosxxx.id_rsa.pub文件加到authorized_keys中 cat centosxxx.id_rsa.pub >> authorized_keys
11.在102上將authorized_keys分發到其他機器
scp ~/.ssh/authorized_keys hadoop@centos103:~/.ssh/
scp ~/.ssh/authorized_keys hadoop@centos103:~/.ssh/
12.三臺機器都執行文件授權
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
13.ssh centos103去免密登錄試試吧,exit退出.