如何获取Jenkins CLI的正确格式密钥文件?

时间:2015-05-01 18:19:56

标签: ssh jenkins ssh-keys openssh jenkins-cli

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

我在这里遵循他们相当简短的描述:https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+CLI说我需要将我的.ppk文件从Putty转换为openssh格式。他们将您链接到此帖子How to convert SSH keypairs generated using PuttyGen(Windows) into key-pairs used by ssh-agent and 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一起使用的正确格式吗?谢谢!

1 个答案:

答案 0 :(得分: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