SSH 无密码授权访问slave集群机器
1. 安装SSH,所有集群机器,都要安装SSH
环境介绍:
Master : CNT06BIG01 192.168.3.61
SLAVE 1: CNT06BIG02 192.168.3.62
SLAVE 2: CNT06BIG03 192.168.3.63
# yum install ssh
2. 分别在master/slave 1/slave 2机器上制作密钥和公钥,分别执行如下命令
制作密钥
# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
制作公钥,将公钥导入authorized_keys
# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
设置本机无密码登录,执行命令后,选择yes
# ssh localhost 或 ssh 机器名称 或 ssh 机器IP
3. 在master机器(CNT06BIG01)上,执行命令,分发公钥给Slave 1/2机器
3.1 分发给SLAVE 1: CNT06BIG02
在master机器(CNT06BIG01)上,进入~/.ssh目录,执行如下命令
# scp authorized_keys root@CNT06BIG02:~/.ssh/authorized_keys_from_master
然后在SLAVE 01机器(CNT06BIG02)上,进入~/.ssh目录,执行如下命令
# cat authorized_keys_from_master >> authorized_keys
最后,就可以在Mater机器(CNT06BIG01)上面,无密码登录SLAVE 01机器(CNT06BIG02)
# ssh CNT06BIG02
效果如下图
备注:如果同时想让SLAVE 01(CNT06BIG02)可以无密码登录master(CNT06BIG01),只需执行如下步骤
在SLAVE 01机器(CNT06BIG02)上,进入~/.ssh目录,执行如下命令
# scp authorized_keys root@CNT06BIG01:~/.ssh/authorized_keys_from_master
然后master机器(CNT06BIG01)上,进入~/.ssh目录,执行如下命令
# cat authorized_keys_from_master >> authorized_keys
最后,就可以SLAVE 01机器(CNT06BIG02)上,无密码登录master机器(CNT06BIG01)上
# ssh CNT06BIG01
效果如下图
3.2 分发给SLAVE 2: CNT06BIG03
在master机器(CNT06BIG01)上,进入~/.ssh目录,执行如下命令
# scp authorized_keys root@CNT06BIG03:~/.ssh/authorized_keys_from_master
然后在SLAVE 02机器(CNT06BIG03)上,进入~/.ssh目录,执行如下命令
# cat authorized_keys_from_master >> authorized_keys
最后,就可以在Mater机器(CNT06BIG01)上面,无密码登录SLAVE 02机器(CNT06BIG03)
# ssh CNT06BIG03
备注:如果同时想让SLAVE 02(CNT06BIG03)可以无密码登录master(CNT06BIG01),只需执行如下步骤
在SLAVE 02机器(CNT06BIG03)上,进入~/.ssh目录,执行如下命令
# scp authorized_keys root@CNT06BIG01:~/.ssh/authorized_keys_from_master
然后master机器(CNT06BIG01)上,进入~/.ssh目录,执行如下命令
# cat authorized_keys_from_master >> authorized_keys
最后,就可以SLAVE 02机器(CNT06BIG03)上,无密码登录master机器(CNT06BIG01)上
# ssh CNT06BIG01
效果如下图
3.3 如果让SLAVE 01 (CNT06BIG02)和 SLAVE 02 (CNT06BIG03)之间可以无密码登录,操作步骤如上 3.1 或 3.2。
在SLAVE 01 (CNT06BIG02)上,进入~/.ssh目录,执行如下命令
# scp authorized_keys root@CNT06BIG03:~/.ssh/authorized_keys_from_master
然后在SLAVE 02机器(CNT06BIG03)上,进入~/.ssh目录,执行如下命令
# cat authorized_keys_from_master >> authorized_keys
最后,就可以在SLAVE 01 (CNT06BIG02)上面,无密码登录SLAVE 02机器(CNT06BIG03)
# ssh CNT06BIG03
效果如下图
备注:如果同时想让SLAVE 02(CNT06BIG03)可以无密码登录SLAVE 01(CNT06BIG02),只需执行如下步骤
在SLAVE 02机器(CNT06BIG03)上,进入~/.ssh目录,执行如下命令
# scp authorized_keys root@CNT06BIG02:~/.ssh/authorized_keys_from_master
然后SLAVE 01(CNT06BIG02)上,进入~/.ssh目录,执行如下命令
# cat authorized_keys_from_master >> authorized_keys
最后,就可以SLAVE 02机器(CNT06BIG03)上,无密码登录master机器(CNT06BIG01)上
# ssh CNT06BIG02
效果如下图
【结束】
如果要退出ssh远程登录,只需要输入命令exit,
【总结】
如上面方法,我们知道配置Linux服务器集群之间能够互相无密码ssh登录:
需要在n台机器之间安装ssh证书和复制公钥,这个复制公钥的动作次数是(n)(n-1)次数。
很显然是很大的体力活,这个急需寻找更简单的办法或方案。