解决金仓数据库securecmdd服务连接报错"Permission denied"问题

引言
在使用KingbaseES V8R6数据库时,若系统环境不支持SSH连接,可通过securecmdd服务实现主机间通信。然而,部分用户在配置root用户互信时遇到了Permission denied报错,导致连接失败。本文将深入分析这一问题的根源,并提供解决方案,帮助开发者快速定位并修复故障。


一、问题现象

用户在执行sys_backup.sh init命令时,报错如下:

关键错误提示为公钥认证失败,转而尝试密码认证后仍无法连接。


二、问题分析

1. 检查目录与文件权限

securecmdd服务依赖以下目录和文件建立连接,权限或属主错误会导致认证失败:

  • 关键目录
  • 关键文件

若上述目录权限被误修改(如/root属主变为kingbase),会导致公钥认证失败。

2. 连接过程Debug分析

通过sys_securecmd -vv开启详细日志,发现以下关键信息:

日志显示/root目录的属主或权限异常,导致服务无法读取.es目录下的密钥文件。

3. 根因定位

检查发现,**/root目录的属主被误设置为kingbase**(正常应为root),导致securecmdd服务无法访问/root/.es中的密钥文件,最终触发权限错误。


三、解决方案

步骤1:修复目录属主与权限

执行以下命令恢复/root目录的默认权限:

步骤2:验证服务配置

重启securecmdd服务,并通过以下命令测试连接:

若返回系统时间且无报错,则修复成功。


四、扩展案例:目录权限过松导致故障

问题现象

若误将/root权限改为777(宽松权限),即使属主正确,仍可能触发以下错误:

解决方法

恢复目录权限为默认值:

五、总结与建议

  1. 权限与属主检查优先级高
    遇到Permission denied时,首先检查相关目录的属主和权限,尤其是/root、/home/kingbase及.es子目录。
  2. Debug日志快速定位问题
    使用sys_securecmd -vv输出详细日志,重点关注bad owner or modes提示。
  3. 定期检查系统配置
    避免误操作修改系统目录权限,建议通过脚本自动化检查关键目录状态。

结语
权限问题是运维中的常见“拦路虎”,尤其在依赖密钥认证的服务中。掌握本文方法,可快速解决securecmdd服务的连接故障。如果您在KingbaseES使用中遇到其他问题,欢迎在评论区留言或关注“金仓拾光集”获取更多技术干货!

关注我们,解锁更多数据库运维技巧!

原文链接:,转发请注明来源!