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组件实现列表页实例代码