Git   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了build议为Jenkins从节点设置SSH凭据的方法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

问题陈述

我正在寻找build议关于正确的方式来build立连接到我们的jenkins主和奴隶的Git的SSH密钥。 在这里还有其他类似的问题,关于Git,jenkins和SSH(最接近这个 ),但似乎没有回答这个问题的具体build议正确的方式来做到这一点。

背景和tesTing

我正在使用内部部署的GitLab开发jenkins的原型实现。 我们在jenkins有几年的经验,但是将它与Git整合对我们来说是新的。 这也是我们第一次configuration任何从节点。 在这一点上,我们只是试图简单的投票工作,没有花哨的推送通知

在msysgit的path上键入错误

如何使用由Cygwin的Windows混帐创build的符号链接

我怎样才能安装git我的web服务器curl.h没有这样的文件错误

如何将Araxis设置为MSYS git的diff / merge工具?

在回滚到以前的版本之后@L_944_8@完整的git日志

jenkins实例正在Linux(RHel 6)上运行。 目前有3个从属服务器:一个RHel Linux服务器和两个运行Windows Server 2012 R2的服务器。 Windows服务器上的jenkins从服务器作为Windows服务运行。 主站和所有从站正在运行最新的Git v2.10.0(64位)。

我们打算使用SSH来访问GitLab。 我使用密码创build了一个SSH密钥,并将其保存在主服务器的磁盘上。 然后,我在GitLab中将公钥作为tesTing项目的一个部署密钥。 最后,我在jenkins增加一个新的证书。

jenkins的第一个tesTing项目中,我configuration了GitLab存储库URL并SELEct了上面创build的jenkins证书。 然后我把这个项目build成了主人。 jenkins与GitLabbuild立了连接,没有任何问题,构build成功。 然后我强制构build到Linux的奴隶,具有相同的结果。

不幸的是,当强制构build到任何一个Windows从站时,构build不能像在Linux上那样工作。

Windows上的错误

(从我原来的问题编辑,基于进一步的研究。)

我最初得到这个错误,阻止任何SSH连接发生:

stderr: Unable to negotiate with xxxx port 22: no matching host key type found. their offer: ssh-dss

这与SSH级别的协商有关。 与Git捆绑在一起的较新的SSH客户端在认情况下不会使用ssh-dss ,这是我所有相对较旧的SSH服务器所能提供的。

为了解决这个问题,我添加了%HOME%/.ssh/config其中包含以下几行,如OpenSSH在Legacy Options下的文档所述:

Host xxxx HostKeyAlgorithms +ssh-dss

这迫使git SSH客户端接受ssh-dss连接。

大约在同一时间,我一直在苦苦GIT_SSH='ssh -vvv'如何从与SSH捆绑在一起的Windows SSH客户端中@L_944_8@详细的SSH输出,因为通常的build议是设置GIT_SSH='ssh -vvv'在Windows上不起作用。 基于AskUbuntu问题和类似的StackOverflow问题,我最终以%HOME%/.ssh/config 。/ %HOME%/.ssh/config结尾:

Host xxxx HostKeyAlgorithms +ssh-dss LogLevel DEBUG3

有debugging输出可用给我一个更好的线索关于发生了什么事情。 最后,我可以在Windows上构build成功, 但前提是我使用的SSH密钥没有密码 。 提示在debugging输出中:

debug1: Authentications that can conTinue: publickey,gssapi-keyex,gssapi-with-mic,password,hostbased debug3: start over,passed a different list publickey,hostbased debug3: preferred publickey,keyboard-interactive,password debug3: authmethod_lookup publickey debug3: remaining preferred: keyboard-interactive,password debug3: authmethod_is_enabled publickey debug1: Next authentication method: publickey debug1: Trying private key: C:\Users\jeNKIN~1.tms\ApPDAta\Local\Temp\ssh2489775972592020656key debug1: read_passphrase: can't open /dev/tty: No such device or address debug2: no passphrase given,try next key debug2: we did not send a packet,disable method

由于某些原因,jenkins无法在Windows上使用适当的密码来设置SSH密钥,在Linux上它工作得很好。 不幸的是,除了命令失败之外,jenkins不会转储来自SSH的debugging输出,所以我无法确切地看到Linux构build在做什么不同。

问题

我试图做到这一点(可能是天真的),显然在Linux上工作,但不在Windows上。 它应该在Windows上工作吗?

这是为我的情况pipe理SSH密钥的正确方法,还是有一些更好的方法来做到这一点? 我希望避免在这个基础架构不断增长的时候,为每个从服务器pipe理磁盘上的密钥文件

假设这是正确的机制,有人可以指示我的指示或答案明确解释如何得到这个工作? 我觉得我必须失去明显的东西…?

Linux命令删除.git文件夹以外的所有文件

GraphLab创build启动器安装错误

Windows服务器上的自主主机远程git存储库

Git – 切换分支(窗口)&uncommited更改

不能在git bash中运行'git'…“bash:/ mingw32 / bin / git:错误的地址”

大佬总结

以上是大佬教程为你收集整理的build议为Jenkins从节点设置SSH凭据的方法全部内容,希望文章能够帮你解决build议为Jenkins从节点设置SSH凭据的方法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: