如何将SSH代理转发至VS Code开发容器以通过SSH访问GitHub
VS Code 开发容器 SSH 代理转发配置方案(Windows 环境)
前置验证(先确认本地配置正常)
- 确认 Windows 本地 ssh-agent 服务已设置为开机自启且正常运行:
# 管理员权限执行PowerShell命令 Set-Service ssh-agent -StartupType Automatic Start-Service ssh-agent - 确认 GitHub 密钥已添加到本地代理:
ssh-add ~/.ssh/github # 验证本地SSH连接正常 ssh -T git@github.com
开发容器配置修改
编辑项目根目录下 .devcontainer/devcontainer.json 文件,添加以下配置:
- 显式开启 SSH 代理转发功能:
注:VS Code 开发容器的 SSH 代理转发不依赖本地"forwardAgent": true.ssh/config中的ForwardAgent配置,必须在此处显式开启才会生效,开启后 VS Code 会自动将本地 ssh-agent 挂载到容器内并同步SSH_AUTH_SOCK环境变量。 - 确保容器内已安装 openssh-client 依赖,可通过 postCreateCommand 自动安装:
// Debian/Ubuntu 系容器使用 "postCreateCommand": "apt update && apt install -y openssh-client" // Alpine 系容器使用 // "postCreateCommand": "apk add openssh-client" - 可选配置:自动将所有 GitHub HTTPS 请求替换为 SSH 协议,无需修改现有 Terraform 模块地址:
"postCreateCommand": "git config --global url.\"git@github.com:\".insteadOf \"https://github.com/\""
生效验证
修改配置后重建开发容器,在容器终端执行以下命令验证转发是否成功:
ssh -T git@github.com
返回你的 GitHub 用户名即为配置成功,此时 Terraform 可正常拉取 SSH 格式的 GitHub 内部模块。
内容的提问来源于stack exchange,提问作者BuZz
相关产品推荐
相关产品推荐

