Bitbucket CI/CD流水线报错:"private-key.pem"格式无效求解决
解决Bitbucket CI/CD SSH密钥无效格式问题
针对你遇到的"Load key 'private-key.pem': invalid format"错误,可按以下步骤排查修复:
修复密钥写入命令:
SSH私钥包含换行符,普通echo命令会丢失换行导致格式损坏。将写入密钥的命令替换为:echo -e "$SSH_PRIVATE_KEY" > private-key.pem-e参数让echo解析字符串中的转义字符(比如换行符\n),确保密钥格式完整。验证SSH_PRIVATE_KEY变量内容:
确认Bitbucket中配置的SSH_PRIVATE_KEY变量:- 必须包含完整的私钥头部
-----BEGIN RSA PRIVATE KEY-----和尾部-----END RSA PRIVATE KEY----- - 私钥主体部分的换行符已正确保留(粘贴到变量时不要丢失换行)
- 没有多余的空格、制表符或其他无关字符
- 必须包含完整的私钥头部
修正SSH命令语法:
你的脚本中ssh命令里的'bash s'疑似笔误,应该是bash -s(用于通过标准输入传递脚本内容),修正后命令为:ssh -i private-key.pem ec2-user@15.202.30.100 'bash -s' < execute.sh
修改后的完整bitbucket-pipelines.yml配置示例:
image: php:8.1.16 pipelines: branches: QA: - step: name: QA caches: - composer script : - apt-get update && apt-get install unzip -y - apt-get install openssh-client -y - echo -e "$SSH_PRIVATE_KEY" > private-key.pem - chmod 600 private-key.pem - ssh -i private-key.pem ec2-user@15.202.30.100 'bash -s' < execute.sh
内容的提问来源于stack exchange,提问作者chethana weerasinghe
相关产品推荐
相关产品推荐

