tiup部署实例时会自己创建一套新的秘钥对,能不能让tiup使用系统的秘钥对,不产生新的秘钥对,因为在一些场景下,目标机器的authorize_keys文件是不允许修改的,只能使用系统自带的秘钥对
你自己做ssh互信,然后tiup部署的时候指定秘钥文件就行了
目标机器已经互信好了,并且不允许修改目标机器的authorize_keys,tiup部署时指定系统秘钥之后,tiup会自己再创建一个新的秘钥对并保存在到~/.tiup/storage/cluster/clusters/{cluster_name}/ssh中,然后tiup会使用新的秘钥对进行互信,之后tiup的操作都会默认使用这个新的秘钥,导致登不上目标机器因为新的秘钥不允许写入目标机器的authorize_keys(写入之后会自动被还原)
你试试在部署的时候不填写验证,就只用 --user
加用户,不要写 -p和-i
tiup还是创建了新的id_rsa和id_rsa.pub
$ tiup cluster deploy --help
--skip-create-user (EXPERIMENTAL) Skip creating the user specified in topology.
如果运行服务的账户是你们自己管理的,可以试试 --skip-create-user
禁止 tiup 自动管理账户
我其实也没试过,我怀疑即使加了这个参数,tiup 还是会尝试用它自己生成的密钥对,这一点非常讨厌
楼主试一试,结果共享一下哈
1 个赞
我之所以说这一点非常讨厌是因为:
- 目标节点上所有需要高权限的操作,都可以让命令行
--user
指定的账户去做,完全不需要运行服务的账户去做 - 拓扑文件里指定的账户,只是运行服务的,不需要一个能 SSH 登录机器的账户,更不需要有什么 sudo 权限
- 部署和管理用的命令行工具依赖 SSH 是合理的, 但是服务运行应该完全不依赖 SSH 才合理
2 个赞
试过了,加了这个参数,tiup还是会去使用它自己生成的秘钥对
把控制机上的 TIUP HOME 里的私钥文件替换一下?换成能跟服务器上公钥匹配的
目前就是这么做的,只是这么做比较麻烦,希望tiup能早点解决这个问题
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。