#创作灵感#
今天部署集群的时候需要配置ssh免密,这个严格来说不算是脚本,只是一个抄近道的小技巧这里记录一下
1、环境背景
下表是一个最基础的Hadoop-HA集群要求,红色为主机名,ip与主机名之间域名解析已经完成,请配置这六台主机之间任意两组ssh免密登录
ip | 角色 | 所需软件 |
192.168.189.137 | NameNode ZKFC hd1 | jdk hadoop2 |
192.168.189.138 | NameNode ZKFC hd2 | jdk hadoop2 |
192.168.189.139 | ResourceManager hd3 | jdk hadoop2 |
192.168.189.140 | DataNode NodeManager JournalNode(数据交换用) QuorrumPeerMain(选举,zookeeper) hd4 | jdk hadoop2 zookeeper3.4 |
192.168.189.141 | DataNode NodeManager JournalNode(数据交换用) QuorrumPeerMain(选举,zookeeper) hd5 | jdk hadoop2 zookeeper3.4 |
192.168.189.142 | DataNode NodeManager JournalNode(数据交换用) QuorrumPeerMain(选举zookeeper) hd6 | jdk hadoop2 zookeeper3.4 |
2、配置步骤
1)在hd1主机上生成ssh密钥
[root@hd1 ~]# ssh-keygen -t rsa -f /root/.ssh/id_rsa -N ''
Generating public/private rsa key pair.
Your identification has been saved in /root/.ssh/id_rsa
Your public key has been saved in /root/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:GKeeHMEy4TWPleO+zuMn65h6+7Ymrj5ioD/BeQ0mfok root@hd1
The key's randomart image is:
+---[RSA 3072]----+
| . o .. |
| . + =o |
| + =.o. |
| . oo *. |
| o = ++.S |
|. E +o.o. |
|.. + + . |
|. + . o+* . |
| o.++*=XO* |
+----[SHA256]-----+
2)整理密钥文件夹,并生成公钥文件authorized_keys
[root@hd1 ~]# cd /root/.ssh/
[root@hd1 .ssh]# ls -al
总用量 20
drwx------. 2 root root 80 5月 18 23:16 .
dr-xr-x---. 3 root root 4096 5月 18 21:44 ..
-rw-r--r--. 1 root root 562 5月 18 23:14 authorized_keys
-rw-------. 1 root root 2590 5月 18 23:08 id_rsa
-rw-r--r--. 1 root root 562 5月 18 23:08 id_rsa.pub
-rw-r--r--. 1 root root 425 5月 18 23:17 known_hosts
[root@hd1 .ssh]# rm -rf known_hosts
[root@hd1 .ssh]# cp id_rsa.pub authorized_keys
3)使用for循环将密钥分发至所有主机
[root@hd1 ~]# for i in hd{2..6}
> do
> scp -r /root/.ssh $i:/root
> done
4)输入yes和密码
此时只需要输入5次yes和密码即可达成六台主机之间任意两组ssh免密登录