我正在Windows Server 2016上运行的Jenkins 2.152中创建一个作业,该作业需要从bitbucket上托管的git repo中提取。组织。我通过GitBash测试了ssh密钥,因此我知道它可以工作,并且没有密码短语。当我尝试使用与Jenkins相同的私钥时,会收到一条错误消息。
Failed to connect to repository : Command "git.exe ls-remote -h
git@bitbucket.org:mygroup/myrepo HEAD" returned status code 128:
stdout:
stderr: Load key
"C:\\Users\\JE~1\\AppData\\Local\\Temp\\ssh2142299850576289882.key": invalid format
git@bitbucket.org: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
全权证书设置为
scope: Global
user: git
Private Key -> Enter Directly -> copy and past - generated by ssh-keygen -t rsa in gitbash
Passphrase: empty
ID: empty
description: bitbucket.org
我注意到在另一台Windows Jenkins服务器上,私钥每行的字符数不同
有人知道詹金斯证书中私人密钥的预期格式吗?或者也许还有其他我可以检查的东西。
非常感谢您的帮助。
最后,我找不到一种方法来将私钥粘贴到Jenkins凭证上。
尽管这对许多人来说可能是常识,但我还是决定将解决方法放在下面。
以下是我从Bitbucket中提取我的私有存储库的变通方法。组织:
SSH-keygen
命令生成SSH密钥 None
这样,Git和SSH将能够在默认位置找到SSH键,通常是c:\用户\username.ssh\
希望这对某人有帮助。
我还收到了这个错误消息,最终发现Jenkins凭证应该是RSA密钥,而不是公钥。以下是我将Jenkins配置为从bitbucket克隆的步骤:
Kind: SSH username and private key
Scope: Global
Username: <my username in bitbucket>
Private key: <Enter directly>
-----BEGIN RSA PRIVATE KEY-----
......
-----END RSA PRIVATE KEY-----
检查您正在使用的Git for Windows版本:从2.19.2开始,它附带OpenSSH v7.9p1(从之前的7.7开始)
和... openssh 7.8刚刚改变了默认的ssh-keygen格式,从经典的PEM 64字符,到OPENSSH一70字符!
只有ssh-keygen-m PEM-t rsa-P"-f afile
将生成旧格式(-m PEM
)
默认情况下,编写OpenSSH格式的私钥,而不是使用OpenSSL的PEM格式。
OpenSSH格式,自2014年起在OpenSSH版本中受支持,并在协议中描述。源发行版中的key
文件提供了更好的保护,以防止脱机密码猜测,并支持私钥中的密钥注释
如有必要,可以通过在生成或更新密钥时向ssh keygen的参数添加“-m PEM
”来编写旧PEM样式的密钥。
问题内容: 在Jenkins,我们将“轮询SCM”计划设置为。但是詹金斯建议 有什么区别和? 问题答案: 当然有区别! -是小时,当分钟== 0时(即1:00、2:00,..) -每分钟 查看指南以获取更多信息。
问题内容: 我正在使用ansible集成开发人员机器。在那台机器上,我正在安装詹金斯。 我用ansible为詹金斯创建了工作: 并通过cli等安装了插件。 但是现在我缺少工作的ssh凭证;我只想要一个带有用户“ jenkins”的ssh凭证,并且使用“来自Jenkins主〜/ .ssh”。 我正在谈论的是这种凭证: 也许是一个普通的脚本,但是我没有找到很多有关它的信息。谢谢您的帮助。 问题答案:
我想在非默认端口上运行Jenkins,所以我修改了Jenkins。如下所示的xml: 它从一开始就可以正常工作http://servername:1010(而不是来自http://servername:8080)但是API(http://servername:1010/api/json?depth=1)仍然报告端口8080上作业的路径。(即“url”:http://servername:8080/
问题内容: 我在詹金斯(Jenkins)有大约10个项目,每个项目针对10个不同的客户。因此,我需要为所有项目创建凭据,以便每个客户端只能访问其项目。 有任何插件可以满足我的要求吗? 请帮忙 !!! 问题答案: 在“全局安全性”下选择“基于项目的矩阵授权策略” 定义普通用户,但不能访问此级别的项目。 然后在每个项目上选择“启用基于项目的安全性”,在这里您可以为单个用户授予其他权限,例如查看和执行作
有没有可能让詹金斯使用真正的浏览器而不是无头浏览器?我正在运行一些用TestNG编写的测试(使用Selenium webdriver)。当我运行testng时。在Eclipse中,浏览器启动并运行测试。但当我使用Jenkins并用maven运行测试时,它不会启动任何浏览器。
问题内容: 我正在尝试使用詹金斯。但是,当我阅读声明性管道语法时,我对“代理”感到困惑(https://jenkins.io/doc/book/pipeline/syntax/#scripted- pipeline )。 代理商代表什么? 这是否意味着我可以设置管道运行时文件夹路径? 如何创建代理? 如何为代理商设置标签? 问题答案: 我能感觉到你:-D。答案如下: 代理程序部分指定整个管道或特定