obd host precheck命令遇到OBD-1013错误该如何解决

【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】4.3.5_bp4
【问题描述】使用离线安装包安装obd(10.237.219.3)后,已配置与(10.237.219.4)ssh免密互信,执行命令obd host precheck root 10.237.219.4 -u root --ssh-key-file=/root/.ssh/id_rsa检查时报错:
[ERROR] OBD-1013: root@10.237.219.4 connect failed: username or password error
使用ssh登录正常
20251014114230

【附件及日志】
详细trace日志:
[2025-10-14 11:26:12.390] [DEBUG] - cmd: [‘root’, ‘10.237.219.4’]
[2025-10-14 11:26:12.392] [DEBUG] - opts: {‘password’: None, ‘username’: None, ‘ssh_key_file’: ‘/root/.ssh/id_rsa’}
[2025-10-14 11:26:12.392] [DEBUG] - mkdir /root/.obd/lock/
[2025-10-14 11:26:12.392] [DEBUG] - unknown lock mode
[2025-10-14 11:26:12.393] [DEBUG] - try to get share lock /root/.obd/lock/global
[2025-10-14 11:26:12.393] [DEBUG] - share lock /root/.obd/lock/global, count 1
[2025-10-14 11:26:12.393] [DEBUG] - ssh connect
[2025-10-14 11:26:12.399] [DEBUG] - host: 10.237.219.4, port: 22, user: root, password: ******
[2025-10-14 11:26:12.626] [ERROR] Traceback (most recent call last):
[2025-10-14 11:26:12.626] [ERROR] File “core.py”, line 6172, in precheck_host
[2025-10-14 11:26:12.626] [ERROR] File “_stdio.py”, line 1164, in func_wrapper
[2025-10-14 11:26:12.626] [ERROR] File “ssh.py”, line 460, in connect
[2025-10-14 11:26:12.626] [ERROR] File “_stdio.py”, line 1164, in func_wrapper
[2025-10-14 11:26:12.626] [ERROR] File “ssh.py”, line 411, in _login
[2025-10-14 11:26:12.626] [ERROR] File “paramiko/client.py”, line 485, in connect
[2025-10-14 11:26:12.626] [ERROR] File “paramiko/client.py”, line 818, in _auth
[2025-10-14 11:26:12.626] [ERROR] File “paramiko/client.py”, line 794, in _auth
[2025-10-14 11:26:12.626] [ERROR] File “paramiko/transport.py”, line 1709, in auth_publickey
[2025-10-14 11:26:12.627] [ERROR] File “paramiko/auth_handler.py”, line 263, in wait_for_response
[2025-10-14 11:26:12.627] [ERROR] paramiko.ssh_exception.AuthenticationException: Authentication failed.
[2025-10-14 11:26:12.627] [ERROR]
[2025-10-14 11:26:12.627] [CRITICAL] [ERROR] OBD-1013: root@10.237.219.4 connect failed: username or password error
[2025-10-14 11:26:12.627] [INFO] Trace ID: 88a64f70-a8ad-11f0-8b68-fa163e6c39bd
[2025-10-14 11:26:12.627] [INFO] If you want to view detailed obd logs, please run: obd display-trace 88a64f70-a8ad-11f0-8b68-fa163e6c39bd
[2025-10-14 11:26:12.627] [DEBUG] - unlock /root/.obd/lock/global

2 个赞

配置文件发下。 还可以 直接设置ssh密码, 不需要互信试下
image

感谢回复!这是user部分的配置内容。
20251014144139
直接使用密码是可以的,但是由于多台机器密码不相同,不方便修改,所以考虑互信的。
另外obd host precheck命令也会读取cluster deploy的这个配置文件吗?

建议创建个admin用户给ob使用。

创建新用户的方式已经尝试过,由于目标机器的/home空间太小,只有2G,组件文件会复制到目标机器/home/admin/.obd下,因为空间不够而安装失败。但是/root可用空间有近10G,所以想尝试用root来安装。

直接这样执行看看,让obd自己去找一下相关免密文件
obd host precheck root 10.237.219.4


试过的,都不行。

obd版本是多少


版本是3.6.0,离线一键安装包oceanbase-all-in-one-4.3.5_bp4_20250910.el7.x86_64.tar.gz

.obd目录如果可以指定到别的位置,我使用admin用户应该也可以,但是没找什么方式可以变更.obd目录的位置。

.obd 默认在home目录下的


zhe这边测试没有复现出来。感觉像是本地环境问题

使用ssh -i连接一下试试,或者重新配置一下免密

20251014165452
使用-i指定key-file是ok的


使用-v看了连接信息明细,猜想会是密钥算法或者公钥类型方面不匹配吗?

学习了

-i 选项用于指定身份文件(通常是 SSH 密钥文件),以便进行身份验证。
那应该是没问题的,继续往下走部署集群吧


继续就走不通了,尝试了重新配置免密,卸载obd重装,都没用,使用免密ssh登录正常,obd相关host precheck,cluster deploy命令都过不去,看来我目前只能通过密码来了,弄不清楚服务器上有什么不兼容的。

部署用户的密码建议全部保持一致

感谢您给与的解答!我就暂时沟通运维修改为一致的密码吧。

重新生成ed25519密钥

ssh-keygen -t ed25519

重新配置免密登录

ssh-copy-id -i ~/.ssh/id_ed25519.pub root@10.237.219.4

完成上述步骤后,再次尝试host precheck和cluster deploy就OK了,虽然具体原因还不清楚。

obd host precheck root 10.237.219.4 --ssh-key-file=/root/.ssh/id_ed25519
obd cluster deploy obtest -c default-components-min.yaml
# user部分配置
user:
  username: root
  key_file: /root/.ssh/id_ed25519