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

Bitbucket Pipeline推送文件夹至GitHub遇公钥权限拒绝问题求助

解决Bitbucket Pipeline推送代码到GitHub的公钥权限问题

问题原因

报错git@github.com: Permission denied (publickey)说明Bitbucket Pipeline的运行环境没有配置可访问目标GitHub仓库的SSH密钥,导致无法通过SSH协议推送代码。

解决步骤

1. 生成专用SSH密钥对

在本地终端执行以下命令生成无密码的SSH密钥(仅用于Bitbucket Pipeline访问GitHub):

ssh-keygen -t ed25519 -C "bitbucket-pipeline@your-domain.com"

执行过程中一路按回车,不要设置密码,最终会生成id_ed25519(私钥)和id_ed25519.pub(公钥)两个文件。

2. 将公钥添加到GitHub仓库的部署密钥

  • 打开目标GitHub仓库,进入Settings > Deploy keys
  • 点击Add deploy key,粘贴id_ed25519.pub文件的完整内容
  • 勾选Allow write access(需要推送权限)后保存

3. 将私钥添加到Bitbucket仓库的安全变量

  • 打开Bitbucket仓库,进入Repository settings > Repository variables
  • 添加新变量:
    • 名称:GITHUB_SSH_KEY
    • 值:粘贴id_ed25519文件的完整内容(包括首尾的标识行)
    • 勾选Secure(确保私钥不被泄露)

4. 修改bitbucket-pipelines.yml配置

更新推送步骤的脚本,添加SSH密钥配置逻辑:

pipelines:
  branches:
    release:
    - step:
        name: "Build"
        script:
          - npm install
          - npm run-script build
        caches:
          - "node"
    - step:
        name: "Build and push to github"
        script:
          - apt-get update
          - apt install --assume-yes --no-install-recommends git openssh-client
          # 配置SSH密钥
          - mkdir -p ~/.ssh
          - echo "$GITHUB_SSH_KEY" > ~/.ssh/id_ed25519
          - chmod 600 ~/.ssh/id_ed25519
          - ssh-keyscan github.com >> ~/.ssh/known_hosts
          - chmod 644 ~/.ssh/known_hosts
          # Git配置与推送
          - git config --global user.name "githubRepoUsername"
          - git config --global user.email "githubRepoUsernameemail"
          - cd release
          - git init
          - git remote add github git@github.com:streamdigitalsignage/ocb.git
          - git checkout -b _build
          - git add .
          - git commit -m "Added new version at $(date)"
          - git push -f github _build

关键说明

  • SSH密钥权限必须严格设置:id_ed25519设为600(仅所有者可读可写),known_hosts设为644,否则SSH客户端会拒绝使用密钥。
  • 使用ssh-keyscan预先添加GitHub主机密钥,避免Pipeline运行时出现交互式确认提示导致失败。
  • 确保GitHub部署密钥勾选了写入权限,否则无法执行推送操作。

内容的提问来源于stack exchange,提问作者Chaker Atallah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 08:20:22