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

可通过SSH连接CodeCommit但执行git clone时报公钥权限被拒

问题根因及操作差异说明

SSH直连测试和git clone操作的底层差异

  • 调用链路不同:直接执行ssh git-codecommit.eu-west-2.amazonaws.com时,会调用当前shell环境的默认SSH程序,读取当前环境变量对应的用户目录下的.ssh/config配置,你提前配置的IAM密钥ID、私钥路径都会正常生效,因此可以正常连通。而git执行SSH操作时,会优先调用git自带的SSH客户端(比如Git for Windows内置的MinGW SSH),或git配置中指定的SSH程序,继承的是git进程的环境变量,两者读取的配置路径、使用的SSH二进制文件可能完全不同。
  • 环境变量优先级不同:企业域环境下经常会修改默认用户的HOME环境变量,普通SSH会话读取的是正确的用户目录,而git进程可能读取到被篡改的HOME路径,无法匹配到你写的SSH配置,导致克隆时没有携带正确的私钥和IAM密钥ID,触发公钥校验失败。

可行解决方案

  • 手动指定git使用系统默认的SSH客户端,执行命令:
    git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"
    指定后git会调用你测试连通性时用的同一个SSH程序,共享同一份配置。
  • 检查git环境的HOME路径,在Git Bash中执行echo $HOME,确认输出路径为你的Windows用户根目录(如C:/Users/你的用户名),如果路径错误,手动在系统环境变量中新增HOME变量,值为你的用户根目录。
  • 如需进一步定位问题,可执行带调试日志的克隆命令,查看SSH握手过程的具体报错:
    GIT_SSH_COMMAND="ssh -v" git clone ssh://git-codecommit.eu-west-2.amazonaws.com/v1/repos/<repo name>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 13:15:02