无法在 Jenkins 配置中添加 SSH 密钥

jee*_*n s 5 ssh jenkins

我已经在 J​​enkins 中安装了“通过 SSH 发布”插件,并且希望在每次构建后将几个文件传输到 SSH 服务器。

我已经使用puttygen密码生成了私钥,并在 SSH 服务器的“authorization_keys”中给出了 OpenSSH 公钥。

使用生成的私钥和密码,我可以通过 PuTTY 登录到 SSH 服务器。

但在 Jenkins 中,我无法添加 SSH 密钥。得到以下错误。

jenkins.plugins.publish_over.BapPublisherException:无法添加 SSH 密钥。消息 [密码'aes256-cbc' 是必需的,但它不可用。

詹金斯配置

Jak*_*uje 9

大多数工具(包括 Jenkins)支持 OpenSSH 格式的密钥(使用 生成ssh-keygen),而不支持 PuTTY 格式的密钥(使用 PuTTYgen 生成)。使用ssh-keygenPPK生成新密钥或将 PPK 转换为 OpenSSH 格式。

我在 SO 文档中写了以下信息。


将 PPK(PuTTY 密钥)转换为 OpenSSH 格式

您可能会收到 PPK 格式的对等私钥,这似乎不适用于 OpenSSH(命令行ssh)。由于OpenSSH 错误,客户端将要求输入密码。

$ ssh -i mykey.ppk example.com
Enter passphrase for mykey.ppk:
Run Code Online (Sandbox Code Playgroud)

您需要使用 PuTTYgen(命令行版本)将密钥转换为 OpenSSH 格式:

puttygen mykey.ppk -o mykey.key -O private-openssh
Run Code Online (Sandbox Code Playgroud)

或者在 GUI 版本中:

  • 打开 PuttyGen
  • 点击加载
  • 加载你的私钥
  • 转到转换->导出 OpenSSH并导出您的私钥
  • 将您的私钥复制到 ~/.ssh/id_rsa

来源:SO 答案Unix SE 答案