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

从GitHub镜像至AWS CodeCommit时遇认证错误求助

解决CodeCommit同步时的"fatal: could not read Username"错误

以下是针对问题的排查和解决步骤:

  • 验证AWS凭证可用性
    在Jenkins节点上执行aws sts get-caller-identity,确认能返回绑定的IAM角色信息。如果报错,检查:

    • 实例的IAM角色是否正确绑定,权限是否包含CodeCommit的读写权限
    • 实例元数据服务(IMDS)是否开启,Jenkins进程是否有权限访问http://169.254.169.254/latest/meta-data/
  • 指定AWS区域并调整Git配置范围
    脚本开头添加区域环境变量,同时将Git凭证配置改为仓库级(避免全局配置权限问题):

    export AWS_DEFAULT_REGION=eu-central-1
    git config credential.'https://git-codecommit.*.amazonaws.com'.helper '!aws codecommit credential-helper $@'
    git config credential.UseHttpPath true
    git remote add sync https://git-codecommit.eu-central-1.amazonaws.com/v1/repos/test-repo
    git push sync --mirror
    
  • 检查AWS CLI安装状态
    执行aws --version确认Jenkins节点已安装AWS CLI。如果未安装,先完成AWS CLI的安装配置,确保凭证助手能正常调用AWS CLI。

  • 备选方案:使用SSH同步
    如果HTTP方式的凭证问题无法解决,切换到SSH方式:

    1. 在Jenkins节点生成SSH密钥对:ssh-keygen -t rsa -b 4096 -f ~/.ssh/codecommit_rsa
    2. 将公钥内容上传到IAM控制台,关联到绑定的角色对应的IAM用户
    3. 修改Git远程地址并配置SSH:
      git remote add sync ssh://git-codecommit.eu-central-1.amazonaws.com/v1/repos/test-repo
      cat >> ~/.ssh/config << EOF
      Host git-codecommit.eu-central-1.amazonaws.com
          User APKAXXXXXXXXXXXXXXXXX
          IdentityFile ~/.ssh/codecommit_rsa
      EOF
      
    4. 执行ssh git-codecommit.eu-central-1.amazonaws.com测试连通性,确认成功后再执行推送

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 19:54:29