You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins SSH节点连接失败:服务器拒绝私钥认证求助

Jenkins SSH节点公钥认证失败问题

已配置节点信息

启动方式:通过SSH启动代理(Launch agents via SSH)
主机:host
凭据:通过指定用户名和私钥新增的凭据
主机密钥验证策略:不验证(选择其他值时错误无变化)

连接时出现的错误

[08/24/22 14:39:14] [SSH] 正在打开到host:22的SSH连接。
[08/24/22 14:39:14] [SSH] 警告:未验证SSH主机密钥,此连接可能遭受中间人攻击。
ERROR: 服务器拒绝了cred_name的1个私钥(credentialId:cred_name/method:publickey)
ERROR: 无法以cred_name身份通过凭据cred_name完成认证
java.io.IOException: 公钥认证失败。
    at com.trilead.ssh2.auth.AuthenticationManager.authenticatePublicKey(AuthenticationManager.java:349)
    at com.trilead.ssh2.Connection.authenticateWithPublicKey(Connection.java:472)
    at com.cloudbees.jenkins.plugins.sshcredentials.impl.TrileadSSHPublicKeyAuthenticator.doAuthenticate(TrileadSSHPublicKeyAuthenticator.java:110)
    at com.cloudbees.jenkins.plugins.sshcredentials.SSHAuthenticator.authenticate(SSHAuthenticator.java:431)
    at com.cloudbees.jenkins.plugins.sshcredentials.SSHAuthenticator.authenticate(SSHAuthenticator.java:468)
    at hudson.plugins.sshslaves.SSHLauncher.openConnection(SSHLauncher.java:881)
    at hudson.plugins.sshslaves.SSHLauncher.lambda$launch$0(SSHLauncher.java:434)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.io.IOException: 无法生成签名
    at com.trilead.ssh2.signature.KeyAlgorithm.generateSignature(KeyAlgorithm.java:43)
    at com.trilead.ssh2.auth.AuthenticationManager.authenticatePublicKey(AuthenticationManager.java:316)
    ... 10 more
Caused by: java.security.SignatureException: 无法签署数据
    at java.base/sun.security.rsa.RSASignature.engineSign(RSASignature.java:196)
    at java.base/java.security.Signature$Delegate.engineSign(Signature.java:1423)
    at java.base/java.security.Signature.sign(Signature.java:712)
    at com.trilead.ssh2.signature.KeyAlgorithm.generateSignature(KeyAlgorithm.java:41)
    ... 11 more
Caused by: javax.crypto.BadPaddingException: RSA私钥操作失败
    at java.base/sun.security.rsa.RSACore.crtCrypt(RSACore.java:209)
    at java.base/sun.security.rsa.RSACore.rsa(RSACore.java:130)
    at java.base/sun.security.rsa.RSASignature.engineSign(RSASignature.java:193)
    ... 14 more
[08/24/22 14:39:14] [SSH] 认证失败。

本地测试验证

在Jenkins所在机器上,执行以下命令可正常连接远程主机:

ssh name@host -p 22

补充说明

  • 私钥通过命令ssh-keygen -t rsa生成,使用的是id_rsa文件中的密钥(原描述中"rsa_id"应为笔误)
  • 此前创建的其他节点连接正常,仅当前节点异常,怀疑是配置问题,希望通过Jenkins UI完成问题排查与解决,无需操作Jenkins用户控制台

内容的提问来源于stack exchange,提问作者Fedor March

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 19:18:17