首页 > 解决方案 > Go + VsCode:Git -> 权限被拒绝(公钥)

问题描述

Golang我的 VSCode 在使用 GitHub 及其更新时遇到了困难。在控制台上,我可以Git正常使用,我也使用go命令来构建和运行我的go应用程序,一切正常。但是,当我使用 时VSCode,它根本无法通过SSH与控制台相同的方式进行身份验证。

完整的消息是:

Error loading workspace: err: exit status 1: stderr: go: github.com/abc/abc@v0.0.0-20210610172953-593247e413d4: 
invalid version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in    
D:\Program Files\Go\bin\pkg\mod\cache\vcs\1c3dbe9a49296bf60aa851731c66574793ff0c41b2a50ff727de076b8a8fce2d: exit status 128: 
Permission denied (publickey). fatal: Could not read from remote repository. 
Please make sure you have the correct access rights and the repository exists. : packages.Load error

有谁知道如何解决这个问题?

标签: gitgovisual-studio-code

解决方案


如果您发现以下之间有任何区别,请检查 VSCode 终端控制台 (CMD):

  • ssh -Tv git@github.com(再次,来自 VSCode 中的 CMD)
  • ssh -Tv git@github.com从您的常规 CMD

考虑到连接的私钥的路径应该有所不同,这应该会告诉您为什么它在 VSCode 中不起作用(而它在您的 CMD 中起作用)

正如 OP 所指出的,一个可能的区别是ssh-agent存在于 VSCode 父进程环境

如果私钥受密码保护,VSCode 将需要 ssh-agent 来读取所述密钥。


推荐阅读