鱼当归
2025 年3 月 4 日 17:07
#1
【 使用环境 】测试环境
【 OB or 其他组件 】
【操作系统】CentOS 7.9
【 使用版本 】4.3.5.0
【问题描述】通过 obd web 进行图形化安装,一直卡在预检查
OBD-1013: root@192.168.1.100 connect failed: Error reading SSH protocol banner[Errno 104] Connection reset by peer
Traceback (most recent call last):
File “paramiko/transport.py”, line 2185, in run
File “paramiko/transport.py”, line 2373, in _check_banner
paramiko.ssh_exception.SSHException: Error reading SSH protocol banner[Errno 104] Connection reset by peer
【复现路径】修改了sshd_config 中 MaxStartups 100 参数重启sshd服务依然这样
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
@论坛小助手
论坛小助手
2025 年3 月 4 日 17:08
#3
根据文档库中的信息,您遇到的问题可能是由于SSH连接问题导致的。以下是一些可能的原因和解决办法:
错误原因:
SSH服务配置问题 :尽管您已经修改了sshd_config
中的MaxStartups
参数并重启了sshd
服务,但可能存在其他SSH配置或防火墙设置阻止了连接。
网络问题 :目标机器与执行obd命令的机器之间的网络连接不稳定或不通。
SSH端口被占用 :默认情况下,SSH使用22端口,如果该端口被其他服务占用,可能会导致连接失败。
解决办法:
1. 检查SSH服务状态
确保SSH服务正在运行并且没有错误:
systemctl status sshd
如果有任何错误信息,请根据提示进行修复。
2. 验证SSH配置
再次确认/etc/ssh/sshd_config
文件中相关配置是否正确,并且没有其他限制性配置影响连接。除了MaxStartups
外,还可以检查以下配置项:
PermitRootLogin yes
(如果您是以root用户连接)
PasswordAuthentication yes
(如果使用密码认证)
修改后记得重启SSH服务:
systemctl restart sshd
3. 测试SSH连接
从执行obd命令的机器上手动尝试通过SSH连接到目标机器,验证是否能正常登录:
ssh root@192.168.1.100
如果可以成功登录,则说明基本的SSH连接是正常的;如果仍然无法连接,请继续排查网络或防火墙设置。
4. 检查防火墙设置
确保防火墙允许SSH流量通过。您可以临时关闭防火墙来测试是否为防火墙引起的问题:
systemctl stop firewalld
或者添加规则允许SSH流量:
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --reload
5. 确认网络连通性
使用ping
命令测试两台机器之间的网络连通性:
ping 192.168.1.100
确保网络稳定且延迟合理。
6. 使用obd命令排除特定算法
如果上述步骤均无效,您可以尝试禁用某些可能导致兼容性问题的SSH算法:
obd env set OBD_DISABLE_RSA_ALGORITHMS 1
然后重新尝试图形化界面部署操作。
以上步骤应该能够帮助您解决OBD-1013错误。如果问题依旧存在,建议收集更多诊断信息,例如使用obdiag
工具,并联系OceanBase的人工答疑以获取进一步支持。
详情请参考:
错误码
OceanBase 安装部署工具 V1.6.0
OceanBase 安装部署工具 V1.3.2
单机部署 OceanBase 数据库
常见问题汇总
使用 OCP 接管 obd 部署的集群
使用 obd 进行运维
1 个赞
鱼当归
2025 年3 月 4 日 17:11
#5
试了,还是不行,我在本机通过 ssh root@192.168.1.100 连了,是可以正常连接的。
论坛小助手
2025 年3 月 4 日 17:17
#6
既然您已经确认可以通过命令行SSH正常连接到目标机器,那么问题可能出在其他方面。接下来我们可以进一步排查和解决这个问题。
进一步排查步骤:
1. 检查obd日志
查看obd的日志文件,以获取更多详细的错误信息。通常日志文件位于~/.obd/log/
目录下。您可以查看最新的日志文件,寻找任何与连接或认证相关的错误信息:
tail -f ~/.obd/log/*.log
2. 确认SSH密钥配置
确保obd使用的SSH密钥配置正确,并且公钥已正确添加到目标机器的authorized_keys
文件中。根据文档中的建议(参考:设置无密码 SSH 登录 ),请检查以下几点:
3. 验证obd配置
确保obd配置文件中指定的目标机器信息正确无误。您可以使用以下命令检查当前配置:
obd cluster display
确保IP地址、用户名等信息与实际环境匹配。
4. 测试obd命令行安装
尝试使用obd命令行工具进行安装,排除是否为web界面特有的问题:
obd cluster deploy <cluster_name> -c <config_file>
如果命令行安装成功,则可能是web界面存在某些特定问题。
5. 检查SELinux设置
根据文档(参考:关闭 SELinux ),确保SELinux不会干扰SSH连接。您可以临时禁用SELinux来测试:
setenforce 0
然后再次尝试通过obd web进行图形化安装。如果禁用SELinux后问题解决,可以考虑永久修改SELinux配置:
vi /etc/selinux/config
将SELINUX=enforcing
改为SELINUX=permissive
或SELINUX=disabled
,并重启服务器使更改生效。
6. 检查obd版本兼容性
确保您使用的obd版本与OceanBase版本兼容。虽然您提到的是4.3.5.0版本,但仍然建议检查是否有更新版本可用,或者确认该版本是否已知存在相关bug。
7. 使用obd debug模式
启用obd的调试模式,获取更详细的日志输出:
export OBD_LOG_LEVEL=DEBUG
然后重新尝试图形化安装,查看是否有更多有用的错误信息。
总结
通过以上步骤,我们应该能够进一步缩小问题范围并找到解决方案。如果经过这些检查后问题仍然无法解决,建议收集所有相关日志信息,并联系OceanBase的人工答疑以获取更多帮助。基于我的内在知识,可能的解答是网络配置或系统安全设置导致了obd web界面的SSH连接失败,而命令行SSH连接正常。希望这些建议能帮到您。
检索到的文档如下:
发起租户恢复
查看租户恢复
(可选)设置无密码 SSH 登录
取消租户恢复
(可选)关闭防火墙和 SELinux
解锁租户
锁定租户
修改租户配置项
修改租户访问白名单
(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)
1 个赞
鱼当归
2025 年3 月 4 日 17:20
#7
问题解决了,找到原因了。
通过ssh -v root@192.168.1.100 连接发现连接被拒绝。
是因为在 /etc/hosts.allow 文件中没有192.168.1.100所以自己连自己失败了
感谢,感谢
2 个赞
鱼当归
2025 年3 月 5 日 17:02
#12
请问,我observer的进程被系统Kill了,我该怎么手动启动observer 呢,就是2881这个端口对应的进程
辞霜
2025 年3 月 5 日 17:08
#13
提个普通的帖子就可以,使用 obd cluster start xxxx即可。或者黑屏启动 ./bin/observer -o ‘(可选)指定参数’
2 个赞