Jenkins ssh代理,没有密码的私钥

时间:2016-12-08 14:46:42

标签: jenkins ssh jenkins-plugins

我试图让我的Jenkins通过ssh发布文件。我使用管道脚本,因为我必须使用ssh代理。但我无法正确配置它,它总是抛出异常。这是我到目前为止所做的调试:

我在"通过SSH发布"上配置了ssh凭据。部分在全局设置和作为凭据(具有私钥的SSH用户名)。 我在master上使用了一个没有密码短语的文件。

我创建了一个自由式作业并配置了"发布SSH" -Plugin来制作一个" ls"在远程机器上。这有效。 我选中了框以使用" ssh agent",但这会导致异常:

[ssh-agent] Looking for ssh-agent implementation...
[ssh-agent]   Java/JNR ssh-agent
[ssh-agent] Skipped registering BouncyCastle, not running on a remote agent
[ssh-agent] Started.
[ssh-agent] Unable to read key: Unable to create OpenSSL PBDKF: Could not generate secret key
org.bouncycastle.openssl.PEMException: Unable to create OpenSSL PBDKF: Could not generate secret key
at org.bouncycastle.openssl.jcajce.PEMUtilities.getKey(Unknown Source)
at org.bouncycastle.openssl.jcajce.PEMUtilities.getKey(Unknown Source)
at org.bouncycastle.openssl.jcajce.PEMUtilities.crypt(Unknown Source)
at org.bouncycastle.openssl.jcajce.JcePEMDecryptorProviderBuilder$1$1.decrypt(Unknown Source)
at org.bouncycastle.openssl.PEMEncryptedKeyPair.decryptKeyPair(Unknown Source)
at jenkins.bouncycastle.api.PEMEncodable.decode(PEMEncodable.java:162)
at com.cloudbees.jenkins.plugins.sshagent.jna.JNRRemoteAgent.addIdentity(JNRRemoteAgent.java:79)
at com.cloudbees.jenkins.plugins.sshagent.SSHAgentBuildWrapper$SSHAgentEnvironment.add(SSHAgentBuildWrapper.java:395)
at com.cloudbees.jenkins.plugins.sshagent.SSHAgentBuildWrapper.preCheckout(SSHAgentBuildWrapper.java:229)
at jenkins.scm.SCMCheckoutStrategy.preCheckout(SCMCheckoutStrategy.java:76)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:528)
at hudson.model.Run.execute(Run.java:1741)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:410)
Caused by: java.security.spec.InvalidKeySpecException: Could not generate secret key
at javax.crypto.SecretKeyFactory.generateSecret(SecretKeyFactory.java:347)
... 15 more
Caused by: java.lang.IllegalArgumentException: password empty
at org.bouncycastle.jcajce.provider.symmetric.OpenSSLPBKDF$PBKDF.engineGenerateSecret(Unknown Source)
at javax.crypto.SecretKeyFactory.generateSecret(SecretKeyFactory.java:336)
... 15 more

我尝试输入一些虚拟密码,这导致了一个不同的异常("检查你的凭据")。 我试图将密钥文件的路径设置为不同的东西,这导致第三个异常(如FileNotFound)

在主服务器或从服务器上运行之间没有区别。

错误消息"密码为空"看起来好像空密码短语会产生问题 - 但是"发布在ssh"插件没有任何问题,所以我认为它应该是这样的。

我不知道还能检查什么。我即将创建一个自由式工作,并通过ssh"这是由我的管道工作引发的...但严重的是,这不是它应该做的方式吗?...

0 个答案:

没有答案