所以我正在与 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 key ,并且一直在寻找一段时间没有运气。谁能指导我如何将我的 .ppk 文件转换为正确的格式以与 Jenkins CLI 一起使用?谢谢!

请您参考如下方法:

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

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

ssh-keygen -t rsa 

公钥的默认位置是:
/Users/your.user/.ssh/id_rsa.pub 

复制您的公共(public) SSH key (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 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!