本案例现场节点间不能通过ssh通信,不能使用图形化。
问题描述
部署集群过程中执行cluster_install.sh脚本提示在node1上不能通过securecmd服务连接node2

分析过程
检查互信
检查互信,分别的集群各个节点执行,返回对应账号则验证成功。
cd /home/kingbase/cluster/kingbase/bin/
./sys_securecmd root@192.168.50.94 'whoami' #在1节点执行 正常
./sys_securecmd kingbase@192.168.50.94 'whoami' #在1节点执行 需要输入密码
./sys_securecmd root@192.168.50.93 'whoami' #在2节点执行 正常
./sys_securecmd kingbase@192.168.50.93 'whoami' #在2节点执行 正常
192.168.50.93上面kingbase用户互信配置有问题,正常不需要输入密码

查看sys_securecmd服务进程
服务运行正常,且是root用户下运行

检查网络
网络也是通的

检查密码是否过期
chage -l kingbase 用户也未过期

检查权限
发现192.168.50.94上面集群安装目录属主属组变成了root用户,时间关系未截图。
解决办法
推测是192.168.50.94解压db.zip时未切换用户直接使用了root用户操作,操作后未修改权限导致。
将192.168.50.94上面集群安装目录属主属组改成kingbase后再次通过sys_securecmd服务kingbase访问免密验证通过,且集群部署成功
chown -R kingbase:kingbase /home/kingbase/cluster
chmod -R 775 /home/kingbase/cluster
补充:sys_securecmd服务介绍
sys_securecmd 不是一种标准的网络协议(如 TCP 或 HTTP),而是**金仓数据库 KingbaseES 集群自带的一个安全远程执行命令行工具。**可以理解为 KingbaseES 为集群管理而定制的、一个更安全的"内部版 SSH"。
核心构成
它是一个典型的 C/S(客户端/服务器)架构工具,包含以下几个关键部分:
|----------|------------------|----------------------------------------------|
| 组件 | 对应文件 | 说明 |
| 服务端 | sys_securecmdd | 在每个集群节点后台运行的守护进程,默认监听 8890 端口,负责接收并执行命令。 |
| 客户端 | sys_securecmd | 用于发起连接的客户端工具,集群管理组件(如 repmgr )通过它向服务端发送指令。 |
| 辅助脚本 | sys_HAscmdd.sh | 负责启动、停止服务,以及关键的密钥协商和初始化工作 |
核心功能:集群内部的安全通道
sys_securecmd 的核心价值在于为 KingbaseES 集群节点间提供安全、加密的通信通道。它的主要用途和特点包括:
- 集群管理通信:在部署、监控、故障转移等场景下,替代传统的 SSH,作为集群内部节点间执行命令、传输数据的主要方式。
- 安全保障:与 SSH 类似,它通过网络加密和认证机制来保护通信安全,防止在网络传输过程中被窃听或篡改。
- 内置与便捷:作为数据库自带的工具,它简化了集群配置。在图形化部署时,可以方便地启用它来管理节点间的通讯,避免了对操作系统 SSH 配置的过度依赖。
sys_securecmd 在集群中的分工
- 启动 (拉起服务) :手动在每个节点上执行命令,启动
sys_securecmdd服务。 - 接管 (内部通信) :一旦
sys_securecmdd服务成功运行,后续的所有集群管理命令(如状态查询、主备切换)都会通过sys_securecmd客户端与sys_securecmdd服务端进行加密通信。
集群配置文件中的 deploy_by_sshd 和 use_scmd 两个参数,就精确地控制了这个流程。

总结
简单来说,sys_securecmd 就是 KingbaseES 集群内部的"专用通信兵"。它基于自定义的安全协议(基于 TCP 端口 8890)工作,为数据库集群的管理提供了安全、集成、高效的通信解决方案。