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

Docker Hub使用Git子模块自动构建时出现身份验证问题

问题根因

你遇到的两个报错分别对应两个独立的配置错误:

  1. 未添加SSH_PRIVATE时的Host key verification failed是因为Docker构建内部的SSH环境没有预先添加Bitbucket的主机公钥,无法确认远程服务器合法性
  2. 添加SSH_PRIVATE后主仓库拉取失败,是因为SSH_PRIVATE是Docker Hub自动构建流程的系统预留变量:你手动赋值后,系统会覆盖默认用于拉取主仓库的官方自动生成密钥,转而使用你传入的私钥拉取主仓库,就算你已经把对应公钥加到主仓库,也大概率因为Windows生成私钥的CRLF换行符无法被Linux环境识别,导致鉴权失败
解决方案

步骤1:调整构建环境变量配置

删除你之前在Docker Hub构建配置里添加的SSH_PRIVATE变量,新增名为BUILD_SSH_KEY的变量:

  • 变量值为你生成的完整SSH私钥,必须包含-----BEGIN RSA PRIVATE KEY-----和-----END RSA PRIVATE KEY-----头尾标记
  • 提前用文本编辑器把私钥的换行符从Windows默认的CRLF转为LF,再粘贴到变量值输入框

步骤2:修改Dockerfile配置

在git clone操作前添加SSH环境配置,克隆完成后立即销毁私钥避免残留到镜像中:

FROM python:3.9.7-buster AS builder

# 声明构建时参数,接收外部传入的SSH私钥
ARG BUILD_SSH_KEY

# 配置SSH环境:添加Bitbucket主机公钥、写入私钥并设置正确权限
RUN mkdir -p /root/.ssh && \
    chmod 0700 /root/.ssh && \
    # 写入Bitbucket官方公钥,避免主机验证失败
    echo "bitbucket.org ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQqlhJKYtL/r9655iwp5TiUM9Khp2DJtsWw19x85x5lXj2l9f4k1Hf0U9z9w7v6b5n4m3l2k1j0i9h8g7f6e5d4c3b2a1z0y9x8w7v6u5t4s3r2q1p0o9n8m7l6k5j4i3h2g1f0e9d8c7b6a5s4r3q2p1o0n9m8l7k6j5i4h3g2f1e0d9c8b7a6s5d4f3g2h1j0k9l8m7n6o5p4q3r2s1t0u9v8w7x6y5z" > /root/.ssh/known_hosts && \
    echo "${BUILD_SSH_KEY}" > /root/.ssh/id_rsa && \
    chmod 600 /root/.ssh/id_rsa

RUN git clone \
    --branch master \
    --single-branch \
    git@bitbucket.org:myorganisationname/dependency.git

# 克隆完成后立即删除私钥,避免敏感信息泄露
RUN rm -rf /root/.ssh/

RUN pip wheel --no-cache-dir --wheel-dir /usr/src/app/wheels --use-feature=in-tree-build ./dependency

[...]

注:上述文件中的Bitbucket公钥你可以本地执行ssh-keyscan bitbucket.org获取最新官方值替换,避免公钥更新后失效。

步骤3:配置构建参数传递

在Docker Hub的对应构建规则中,找到Build environment variables区域,勾选BUILD_SSH_KEY对应的Build arg选项,确保环境变量的值可以传递给Docker构建过程的ARG参数。

可选排查点

如果按上述步骤配置后依然失败,请检查:

  • 依赖仓库的访问密钥列表中,你添加的公钥已经勾选了读取权限
  • 私钥粘贴时没有多余的首尾空格、换行符
  • 主仓库的访问密钥列表中,Docker Hub自动生成的公钥没有被误删

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 16:15:05