1

所以我正在使用 Jenkins,我需要使用 Jenkins CLI,但我无法弄清楚身份验证。

我在这里遵循他们相当简短的描述:https : //wiki.jenkins-ci.org/display/JENKINS/Jenkins+CLI 说我需要将我的 .ppk 文件从 Putty 转换为 openssh 格式。他们在此处将您链接到这篇文章如何将使用 PuttyGen(Windows) 生成的 SSH 密钥对转换为 ssh-agent 和 KeyChain(Linux) 使用的密钥对,我按照这些说明操作并尝试使用它生成的文件,但我最终得到一个单行文件,如下所示:

ssh-rsa [KEY]

当我将此文件与 Jenkins CLI 一起使用时,我收到此错误:

Exception in thread "main" java.io.IOException: Invalid PEM structure, '-----BEGIN...' missing
at com.trilead.ssh2.crypto.PEMDecoder.parsePEM(PEMDecoder.java:138)
at com.trilead.ssh2.crypto.PEMDecoder.decode(PEMDecoder.java:313)
at hudson.cli.PrivateKeyProvider.loadKey(PrivateKeyProvider.java:143)
at hudson.cli.PrivateKeyProvider.loadKey(PrivateKeyProvider.java:126)
at hudson.cli.PrivateKeyProvider.readFrom(PrivateKeyProvider.java:107)
at hudson.cli.CLI._main(CLI.java:440)
at hudson.cli.CLI.main(CLI.java:387)

我真的完全不熟悉 ssh 密钥,并且一直在寻找一段时间没有运气。谁能指导我如何将我的 .ppk 文件转换为正确的格式以与 Jenkins CLI 一起使用?谢谢!

4

1 回答 1

1

你必须在你的机器上生成一个公共 SSH 密钥,并在你的 Jenkins 服务器上声明这个 SSH 密钥。

要在您的机器上生成公钥(没有密码):

ssh-keygen -t rsa

公钥的默认位置是:

/Users/your.user/.ssh/id_rsa.pub

复制您的公共 SSH 密钥 (ssh-rsa XXXXXXXX your.email@domain.com)。

接下来,进入您的 Jenkins 服务器并编辑您的 Jenkins 用户信息(通过右上角,单击您的用户名)。

转到“SSH 公钥”部分并粘贴您的公钥。

您应该能够使用 CLI 访问您的 Jenkins 服务器。

我已经在我的 Jenkins 服务器上测试了这个配置并且它可以工作。

brunolavit@MBP ~/Downloads$ java -jar jenkins-cli.jar -s http://myjenkinsserver.mydomain.com:8080/ version
1.577
于 2015-05-04T10:17:01.193 回答