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

使用docker-compose在Docker镜像内克隆Bitbucket私有仓库失败

解决Docker构建时克隆Bitbucket私有仓库的Host Key验证失败问题

问题分析

你遇到的Host key verification failed错误,核心原因是构建镜像时:

  • SSH的known_hosts文件权限或内容不正确
  • Git未使用指定的自定义SSH密钥(你的密钥为id-docker-unity,而非默认的id_rsa)
  • 部分SSH配置操作以root用户执行,导致普通用户bobsaccamano无法正确读取相关文件

解决方案

1. 修正SSH配置,指定自定义密钥

在Dockerfile的Setup SSH keys部分,替换为以下代码,确保所有SSH操作的权限和配置正确:

# Setup SSH keys
RUN mkdir -p -m 0700 /home/bobsaccamano/.ssh
COPY id-docker-unity /home/bobsaccamano/.ssh/
RUN chown bobsaccamano:bobsaccamano /home/bobsaccamano/.ssh/id-docker-unity
RUN chmod 600 /home/bobsaccamano/.ssh/id-docker-unity
COPY id-docker-unity.pub /home/bobsaccamano/.ssh/ 
RUN chown bobsaccamano:bobsaccamano /home/bobsaccamano/.ssh/id-docker-unity.pub
RUN touch /home/bobsaccamano/.ssh/known_hosts && chown bobsaccamano:bobsaccamano /home/bobsaccamano/.ssh/known_hosts
# 以bobsaccamano用户执行ssh-keyscan,避免权限问题
RUN su - bobsaccamano -c 'ssh-keyscan bitbucket.org >> ~/.ssh/known_hosts'
# 添加SSH配置文件,指定Bitbucket连接用的密钥
RUN echo "Host bitbucket.org\n  IdentityFile /home/bobsaccamano/.ssh/id-docker-unity\n  User git" > /home/bobsaccamano/.ssh/config
RUN chown bobsaccamano:bobsaccamano /home/bobsaccamano/.ssh/config
RUN chmod 600 /home/bobsaccamano/.ssh/config

2. 提前测试SSH连接(可选但推荐)

在执行git clone前添加测试命令,验证SSH连接是否正常,方便快速排查问题:

# 测试Bitbucket SSH连接
RUN ssh -T git@bitbucket.org
# Pull Repositories
WORKDIR /home/bobsaccamano/proj/
RUN git clone git@bitbucket.org:some_repo/imp_hmi.git

3. 确保SSH文件权限严格合规

SSH对文件权限要求极高,必须满足:

  • .ssh目录权限为0700
  • 密钥文件(id-docker-unity)权限为0600
  • config和known_hosts文件权限为0600
  • 所有文件的所有者必须是bobsaccamano

关键修正点说明

  • 用su - bobsaccamano -c执行ssh-keyscan:避免root用户写入known_hosts后,普通用户无法读取的权限冲突
  • 添加SSHconfig文件:明确告诉Git连接Bitbucket时使用你的自定义密钥,而非默认的id_rsa
  • 严格控制权限:SSH会直接拒绝读取权限过于开放的密钥或配置文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 19:25:22