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

Jenkins Pipeline连接EC2 SSH失败:私钥格式无效

Jenkins SSH连接EC2私钥格式错误解决方案

问题描述

尝试通过Jenkins的SSH插件连接EC2实例,已将AWS下载的something.pem私钥内容粘贴到Jenkins全局凭据中,但执行ssh-add时提示invalid format错误,添加末尾换行后仍失败,报错日志如下:

SSH_AGENT_PID=2612
Running ssh-add (command line suppressed)
Error loading key "/var/jenkins_home/workspace/ultibranch-pipeline_jenkins-jobs@tmp/private_key_8683577244018302829.key": invalid format
[Pipeline] // sshagent
[Pipeline] End of Pipeline
ERROR: Failed to run ssh-add
Finished: FAILURE

解决步骤

  • 严格检查私钥粘贴完整性:确保粘贴的私钥包含完整的头部-----BEGIN RSA PRIVATE KEY-----和尾部-----END RSA PRIVATE KEY-----,每一行字符数符合PEM标准(每行64字符),无多余空格、空行或截断。粘贴时不要在头部前或尾部后添加额外空行,仅保留私钥本身的换行。
  • 转换私钥为兼容格式:部分新版AWS EC2私钥采用OPENSSH格式,Jenkins ssh-agent插件可能不兼容。在本地执行以下命令将其转换为RSA PEM格式:
    ssh-keygen -p -f something.pem -m pem -P "" -N ""
    
    转换完成后,将新生成的私钥内容重新粘贴到Jenkins凭据中。
  • 确认凭据配置正确:在Jenkins全局凭据中选择「SSH Username with private key」类型,用户名填写EC2实例的默认用户名(如ubuntu、ec2-user,根据AMI类型而定),私钥选择「Enter directly」并粘贴正确的内容。
  • 本地验证私钥有效性:先在本地机器通过ssh-add something.pem和ssh <用户名>@<EC2公网IP>测试私钥能否正常连接EC2,确认私钥本身无问题后再配置到Jenkins。
  • 检查Jenkins节点SSH版本:如果Jenkins运行的节点SSH客户端版本过旧,可能不支持新私钥格式。在节点执行ssh -V查看版本,必要时升级SSH客户端。

内容的提问来源于stack exchange,提问作者Keshav Singh N

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 01:20:05