VS Code克隆Gitea托管Git仓库报SSH权限拒绝问题咨询
故障原因
- SSH Agent会话不共享:你在独立终端中手动启动
ssh-agent、添加私钥的操作仅对当前终端会话生效。若VS Code未从该终端进程启动,其内部调用Git时无法继承SSH Agent的环境变量,也就无法获取已加载的私钥,最终触发权限校验失败。 - GitLens登录提示与该问题无关:界面提示
you are not signed in to any accounts是GitLens需要调用Gitea的开放API获取关联功能(如PR、Issue同步),和Git本身的SSH推拉权限完全无关,不属于本次报错的诱因。
解决方法
方案1:配置SSH全局配置(推荐,一劳永逸)
编辑SSH配置文件:
- macOS/Linux路径:
~/.ssh/config - Windows路径:
C:\Users\你的用户名\.ssh\config
添加以下配置:
Host vgit01x.whatever.jp HostName vgit01x.whatever.jp User git IdentityFile /path/to/privateKey AddKeysToAgent yes
保存后无需每次手动执行ssh-add,终端和VS Code访问该Gitea仓库时会自动调用指定私钥完成鉴权。
如果是Windows系统,额外开启OpenSSH Authentication Agent服务并设为自动启动即可实现私钥密码缓存。
方案2:继承终端环境变量启动VS Code
每次需要用VS Code操作Git前,先在执行过ssh-agent、ssh-add的终端中输入code命令启动VS Code,VS Code会继承当前终端的SSH Agent环境变量,即可正常完成鉴权。该方案临时可用,每次启动都需要走这个流程,不如方案1便捷。
可选配置:解决GitLens未登录提示
如果需要使用GitLens的Gitea关联功能,可在Gitea账户的「设置-应用」页面生成个人访问令牌(PAT),再打开GitLens插件设置,找到Gitea相关配置项,填入你的Gitea实例地址和生成的PAT即可完成登录,不配置也不影响Git的基础推拉功能。
内容的提问来源于stack exchange,提问作者BCArg
相关产品推荐
相关产品推荐

