所以我正在和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一起使用的正确格式吗?谢谢!
答案 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