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

VSCode devcontainer同容器内克隆第二个仓库提示git permission denied

问题根因
  • 当使用VSCode的「Clone repository in container volume」功能克隆仓库时,VSCode只会将本地的git/SSH凭证临时挂载到目标仓库对应的工作区上下文,仅对该单个仓库的操作生效,不会将凭证配置写入容器全局的~/.ssh、~/.gitconfig等路径。
  • 对主仓库的所有git操作(GUI端操作、终端内针对主仓库的pull/push)都是在VSCode的工作区上下文内执行,VSCode会自动将凭证传递给对应的git进程,因此可以正常运行。而在终端内直接执行第二个仓库的克隆命令属于全局git操作,无法获取到VSCode注入的工作区专属凭证,因此触发权限报错。
  • 第二个仓库单独使用「Clone repository in container volume」可以正常克隆,是因为此时VSCode会为第二个仓库单独启动新的devcontainer实例,单独注入对应凭证,和运行主仓库的devcontainer是完全隔离的环境。
解决方案

方案1:开启SSH代理转发(永久生效)

在devcontainer配置文件.devcontainer/devcontainer.json中添加以下配置,开启本地SSH代理转发到容器:

"features": {
    "ghcr.io/devcontainers/features/sshd:1": {
        "forwardAgent": true
    }
}

配置保存后重建devcontainer,后续容器内所有SSH协议的git操作都会自动复用本地的SSH凭证,无需额外配置。

方案2:临时配置容器内SSH密钥

如果不想修改devcontainer配置,可直接将本地有权限的SSH私钥内容复制到容器内的~/.ssh/id_rsa路径,执行以下命令调整权限后即可正常克隆:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa

方案3:使用HTTPS协议克隆

直接将克隆命令替换为HTTPS格式,触发VSCode自带的凭证管理器弹窗授权即可正常克隆:
git clone https://github.com/用户名/仓库名.git

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:06:03