TiDB SSH互信配置案例一例
发布时间 - 2025-06-27 00:00:00 点击率:次在线上运维tidb的过程中,遇到一个问题:使用tiup工具在服务器a上扩容tidb节点时,扩容命令提示ssh配置报错。报错内容如下:
Error: executor.ssh.execute_failed: Failed to execute command over SSH for ‘root@10.xxx.xx.128:26387’ {ssh_stderr: , ssh_stdout: , ssh_command: export; PATH=$PATH:/usr/bin:/usr/sbin sudo -H bash -c “test -d /tmp || (mkdir -p /tmp && chown root:$(id -g -n root) /tmp)”}, cause: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
然而,手动从管理机器执行ssh远程登录服务器A时,并没有报错。
通常情况下,我们会使用以下命令查看TiDB集群的配置:
tiup cluster check cluster_name --cluster
在使用此命令查看TiDB集群配置时,发现部分节点的状态显示为Error,正常情况下应该都是Done。
根据官方文档的提示(如下图),我们花了很长时间排查问
题,但始终未能解决。
于是,我们在asktug上提出了一个问题:
https://www./link/d5a1469d699bdf9fdc74cc29643034bf
最终得到了答案:
TiDB依赖的SSH秘钥与管理机的SSH秘钥不一致。
我们分别解释一下这两个秘钥的概念:
1、TiDB依赖的SSH秘钥。
在执行tiup cluster list命令列举tiup管理的集群信息后,输出结果中已经包含了TiDB依赖的SSH秘钥:
[root@ ~]# tiup cluster listStarting component `cluster`: /root/.tiup/components/cluster/v1.8.0/tiup-cluster listName User Version Path PrivateKey---- ---- ------- ---- ----------tidb_lock root v5.0.0 /root/.tiup/storage/cluster/clusters/tidb_lock /root/.tiup/storage/cluster/clusters/tidb_lock/ssh/id_rsa
最后一行最右侧即为TiDB依赖的SSH秘钥。
2、管理机的SSH秘钥
这实际上是我们配置SSH互信时使用的秘钥,通常位于当前用户目录下的~/.ssh/id_rsa和~/.ssh/id_rsa.pub这两个文件中。
如果你的用户是root,那么~应该替换为/root。
这两个秘钥在初始化时应该是相同的。然而,由于在管理机上执行了ssh-keygen命令,重新生成了新的秘钥,覆盖了管理机原来的~/.ssh/id_rsa和~/.ssh/id_rsa.pub文件,导致二者不一致,最终产生了报错。
解决方案:
以TiDB使用的秘钥为准,覆盖用户目录下的~/.ssh/id_rsa和~/.ssh/id_rsa.pub秘钥即可。
虽然这个问题已经解决,但在解决过程中,官方人员提供了一个详细的TiDB部署时涉及的账号文档,让我对这些账号有了进一步的理解:
https://www./link/c0f3a9cc8c0672341632498cdfb3fff9
文档从以下三个维度对TiDB的账户进行了分析:
1、运行 tiup 的账户 2、集群节点上的高权限账户 3、集群服务账户
有兴趣的同学一定不要错过。
# 工具
# ai
# bash
# for
# Error
# tidb
# https
# ssh
# 报错
# 这两个
# 文档
# 一个问题
# 过程中
# 都是
# 情况下
# 成了
# 目录下
# 我对
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
简历没回改:利用AI润色让你的文字更专业
音乐网站服务器如何优化API响应速度?
Laravel怎么自定义错误页面_Laravel修改404和500页面模板
如何快速搭建高效香港服务器网站?
Laravel怎么在Blade中安全地输出原始HTML内容
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
百度输入法ai组件怎么删除 百度输入法ai组件移除工具
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
网站建设保证美观性,需要考虑的几点问题!
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
javascript中闭包概念与用法深入理解
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
制作公司内部网站有哪些,内网如何建网站?
Firefox Developer Edition开发者版本入口
Laravel如何为API生成Swagger或OpenAPI文档
JavaScript数据类型有哪些_如何准确判断一个变量的类型
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
Win11怎么开启自动HDR画质_Windows11显示设置HDR选项
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
如何在Windows环境下新建FTP站点并设置权限?
如何快速上传建站程序避免常见错误?
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程
如何在橙子建站中快速调整背景颜色?
百度浏览器如何管理插件 百度浏览器插件管理方法
Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】
零基础网站服务器架设实战:轻量应用与域名解析配置指南
小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像
如何快速查询网址的建站时间与历史轨迹?
Python正则表达式进阶教程_复杂匹配与分组替换解析
使用豆包 AI 辅助进行简单网页 HTML 结构设计
Bootstrap整体框架之CSS12栅格系统
如何为不同团队 ID 动态生成多个“认领值班”按钮
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
Python制作简易注册登录系统
详解阿里云nginx服务器多站点的配置
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
简单实现Android文件上传
🚀拖拽式CMS建站能否实现高效与个性化并存?
使用C语言编写圣诞表白程序
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
微信推文制作网站有哪些,怎么做微信推文,急?
如何在新浪SAE免费搭建个人博客?
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
网站建设要注意的标准 促进网站用户好感度!
高性价比服务器租赁——企业级配置与24小时运维服务
微信小程序 scroll-view组件实现列表页实例代码

