Hadoop 集群配置免密 SSH 登錄


Hadoop 集群包含 1 個主節點和 3 個從節點,需要實現各節點之間的免密碼登錄

Hadoop集群環境
節點名稱 節點IP
node-01 192.168.229.21
node-02 192.168.229.22
node-03 192.168.229.23
node-04 192.168.229.24
免密登錄原理

每台主機authorized_keys文件里面包含的主機(ssh密鑰),該主機都能無密碼登錄,所以只要每台主機的authorized_keys文件里面都放入其他主機(需要無密碼登錄的主機)的 ssh 密鑰即可

實現步驟

1、每個節點生成 ssh 密鑰

[root@node-01 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
.....................

[root@node-01 .ssh]# ls
id_rsa  id_rsa.pub

[root@node-02 ~]# ssh-keygen -t rsa
[root@node-03 ~]# ssh-keygen -t rsa
[root@node-04 ~]# ssh-keygen -t rsa

執行命令后會在 ~ 目錄下生成 .ssh 文件夾,里面包含 id_rsa(私鑰) 和 id_rsa.pub(公鑰) 兩個文件

2、在主節點上將公鑰拷到一個授權文件 authorized_keys 中

[root@node-01 ~]# cd .ssh
[root@node-01 .ssh]# ls
id_rsa  id_rsa.pub
[root@node-01 .ssh]# cp id_rsa.pub authorized_keys
[root@node-01 .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub

3、將 authorized_keys 文件拷到下一個節點,並將該節點的 ssh 密鑰 id_rsa.pub 加入該文件中

#在 node-01 上使用 scp 命令實現遠程文件拷貝
[root@node-01 .ssh]# scp authorized_keys root@node-02:/root/.ssh/
The authenticity of host 'node-02 (192.168.229.22)' can't be established.
ECDSA key fingerprint is SHA256:MyB1zs0E3J/fm8pC0AN8ycsgEIBNHtUqd9xS0WAyv3s.
ECDSA key fingerprint is MD5:88:48:3a:ba:3e:14:a7:d7:86:f6:51:74:00:10:f9:00.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'node-02,192.168.229.22' (ECDSA) to the list of known hosts.
root@node-02's password: 
authorized_keys                                                                100%  395   306.2KB/s   00:00    

# 登錄 node-02 主機
[root@node-02 ~]# cd .ssh/
[root@node-02 .ssh]# ls 
authorized_keys  id_rsa  id_rsa.pub
# 使用 cat 追加方式將 id_rsa.pub 文件內容添加到 authorized_keys 中
[root@node-02 .ssh]# cat id_rsa.pub >> authorized_keys

4、 重復第 3 步的操作,依次將 node-03、node-04 節點的 ssh 密鑰加入到 authorized_keys 文件中,並將 node-04 節點生成的authorized_keys 文件拷貝到其他三個節點(node-01、node-02、node-03)即可

#登錄 node-03 主機,將 ssh 密鑰加入 authorized_keys 文件中
[root@node-03 .ssh]# cat id_rsa.pub >> authorized_keys 
[root@node-03 .ssh]# scp authorized_keys root@node-04:/root/.ssh/

#登錄 node-04 主機,將 ssh 密鑰加入 authorized_keys 文件中
[root@node-04 .ssh]# cat id_rsa.pub >> authorized_keys 

#將最后生成的 authorized_keys 文件分別拷貝到 node-01、node-02 和 node-03 中
[root@node-04 .ssh]# scp authorized_keys root@node-01:/root/.ssh/
[root@node-04 .ssh]# scp authorized_keys root@node-02:/root/.ssh/
[root@node-04 .ssh]# scp authorized_keys root@node-03:/root/.ssh/

5、驗證免密登錄

使用 ssh 用戶名@節點名或 ssh ip 地址命令驗證免密碼登錄

[root@node-01 .ssh]# ssh root@node-02
[root@node-02 .ssh]# ssh root@node-01
[root@node-03 .ssh]# ssh root@node-04
[root@node-04 .ssh]# ssh root@node-03


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM