注意:本文档配置的为root用户(密码:vagrant)的SSH免密,如果要配置其他用户请修改相关配置。
资源规划
| 组件 | bigdata-node1 | bigdata-node2 | bigdata-node3 |
|---|---|---|---|
| OS | centos7.6 | centos7.6 | centos7.6 |
环境准备
安装操作系统
参考:《基于Vagrant的CentOS7.6》
SSH免密配置

配置ssh免密,实现节点间的无密码登录 (注意关闭防火墙),将实现集群节点互访。
Φ 生成公钥、私钥
1.以[root]用户登录产生密钥(集群所有机器执行脚本)
cd ~ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
注:以rsa算法,生成公钥、私钥对,-P ‘’表示空密码。该命令运行完后,会在个人主目录下生成.ssh目录,里面会有二个文件idrsa(私钥) ,id_rsa.pub(公钥)
2.导入authorized_keys(节点1**执行脚本_**)
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keyschmod 600 ~/.ssh/id_rsa
3.[root]用户设置SSH配置文件权限(集群所有机器执行脚本)
chmod 766 /etc/ssh/sshd_config
4.[root]用户登录服务器修改SSH配置文件(集群所有机器执行脚本)
vi /etc/ssh/sshd_config
配置如下:
RSAAuthentication yes ## 启用 RSA 认证PasswordAuthentication yes ## 开启ssh密码登陆PubkeyAuthentication yes ## 启用公钥私钥配对认证方式PermitRootLogin yes ## 不限制登录方式AuthorizedKeysFile .ssh/authorized_keys ## 公钥文件路径(和上面生成的文件同)
设置完之后记得重启SSH服务,才能使刚才设置有效。
service sshd startservice sshd statusservice sshd restartservice sshd enable # 随开机启动service sshd disabledservice sshd stop
5.验证(节点1执行脚本)
ssh localhostssh bigdata-node1
Φ 其它机器生成公钥、密钥
以root用户身份登录其它几个节点生成公钥、密钥(如果此步骤在上一步骤中已做,略过)
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
然后用scp命令,把其他节点公钥文件发放给节点1
## 节点2节点上运行scp ~/.ssh/id_rsa.pub root@bigdata-node1:~/id_rsa_02.pub## 节点3节点上运行scp ~/.ssh/id_rsa.pub root@bigdata-node1:~/id_rsa_03.pub
Φ 合并所有节点密钥
在节点1上将其他节点上传的id_rsa_xx.pub,导入authorized_keys
cat ~/id_rsa_02.pub >> ~/.ssh/authorized_keyscat ~/id_rsa_03.pub >> ~/.ssh/authorized_keys
经过这个步骤,节点1上拥有所有集群机器的authorized_keys
Φ 分发公钥集合
在节点1上分发authorized_keys
## 将节点1上的“最全”公钥,复制到其它机器scp ~/.ssh/authorized_keys root@bigdata-node2:~/.ssh/authorized_keysscp ~/.ssh/authorized_keys root@bigdata-node3:~/.ssh/authorized_keys
修改其它节点上authorized_keys文件的权限
chmod 600 ~/.ssh/authorized_keyschmod 600 ~/.ssh/id_rsachmod g-w ~/.sshchmod 700 ~/.ssh
Φ 验证
# 各节点相互登录验证ssh bigdata-node1exitssh bigdata-node2exitssh bigdata-node3exit
注:.ssh 文件夹下(~/.ssh)的文件功能解释
| 文件名 | 含义 |
|---|---|
| known_hosts | 记录 ssh 访问过计算机的公钥(public key) |
| id_rsa | 生成的私钥 |
| id_rsa.pub | 生成的公钥 |
| authorized_keys | 存放授权过得无密登录服务器公钥 |
