奶茶喝嗨了
1
为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
- 【TiDB 版本】:v5.2.1
- 【问题描述】:Error: executor.ssh.execute_failed: Failed to execute command over SSH for ‘tidb@192.168.8.17:22’ {ssh_stderr: , ssh_stdout: , ssh_command: export LANG=C; PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin /usr/bin/sudo -H bash -c “test -d /tidb-deploy || (mkdir -p /tidb-deploy && chown tidb:$(id -g -n tidb) /tidb-deploy)”}, cause: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
topology.yaml (634 字节)
tiup-cluster-debug-2022-03-16-17-03-14.log (316.6 KB)
2 个赞
db_user
(Db User)
2
1 个赞
在你tiup的主机的tidb用户下执行
[tidb@localhost .tiup]$ ssh-keygen ##一路回车即可生成密钥对注意是在tidb用户下执行
[tidb@localhost .tiup]$ ls /home/tidb/.ssh/* ##以下就是生成的公钥和私钥
/home/tidb/.ssh/id_rsa /home/tidb/.ssh/id_rsa.pub
[tidb@localhost .tiup]$ ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.135.148 ##建立对192.168.135.148 主机的免密登录 这里需要免密登录哪台机器就填写哪台机器的ip地址即可
1 个赞
之后你可以直接在tidb用户下ssh 你要部署tidb的节点看一下是否可以免密登录
1 个赞
你看一下报错 他是远程的tidb@192.168.8.17 所以你要配置tidb用户的免密访问,另外你要确认一下在安装机上的tidb用户下 ssh其他节点的tidb用户都是免密的 你再试试
奶茶喝嗨了
7
必须每台服务器都新建一个tidb用户吗,我直接都用root用户不行吗
如果使用tidb用户的话就要每台机器的建一个
如果你想使用root用户你可以试一下,在root用户下执行
tiup cluster deploy tidb-jiantest v5.4.0 ./topology.yaml --user root
这个命令是个例子 集群名字和版本 还有配置文件的名字你自己修改一下
奶茶喝嗨了
12
我现在都用的tidb用户,互信免密也配置好了,还是部署失败
192.168.8.17 上边tidb用户的sudo 权限配了么
[root@localhost ~]# visudo
tidb ALL=(ALL) NOPASSWD: ALL
su - tidb
ssh tidb@192.168.8.17 “sudo -l;sudo mkdir /testdir”
你执行一下,还有我看你的截图是在root下边
你要是–user tidb 你就去tidb用户下执行deploy --user 你就去root用户下执行deploy
caiyfc
17
现在有两种方式
第一:用tiup自动去创建部署的用户,对权限没啥要求,我建议用这个方法,参考这个 使用 TiUP 部署 TiDB 集群 | PingCAP Docs
在命令后面加 --user root -p,tiup会自动在所有节点创建拓扑文件中填写的用户并授权
第二,手动创建ssh互信: TiDB 环境与系统配置检查 | PingCAP Docs
这种就很容易出现各种权限问题了,要逐一排查,每个节点都要去单独设置用户和赋权
2 个赞