ssh - 如何为 Jenkins CLI 获取正确格式的 key 文件?

标签 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 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

关于ssh - 如何为 Jenkins CLI 获取正确格式的 key 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29992642/

相关文章:

powershell - 如何在不输入 y 的情况下使用 ssh-keygen 和 PowerShell 覆盖现有的 SSH key 文件

unix - 在其他应用程序中使用 ssh key 进行身份验证?

git - 网 bean 7.3 : Error connecting to Git repository with SSH

linux - 限制 OpenSSH 只允许上传到特定目录

bash - 使用 SSH 和 NFS 在集群上进行并行化的最简单方法是什么?

python - 使用私钥连接到服务器时出现pysftp AuthenticationException

python - 如何使用单个 python 文件向服务器发出命令并向 DUT 发出延迟 5 秒的命令

authentication - `jenkins ALL=(ALL) NOPASSWD: ALL` 的含义是什么?它是否会产生安全问题?

jenkins - 是否有一个 jenkins 插件可以添加“why-I-built-this”注释,该注释将与 'started by [user]' 一起出现?

svn - Jenkins svn 提交后构建