【问题标题】:cloning git repo (hosted by gitea) via VS code通过 VS 代码克隆 git repo(由 gitea 托管)
【发布时间】:2021-07-06 09:35:29
【问题描述】:

我正在尝试使用 VS 代码中的 git 集成来跟踪与我的同事共享的项目的更改。该项目由giteaf 托管,我使用 ssh-key 来检查我的身份,一切都从命令行运行(我已经将公钥上传到了 git repo),如下所示:

ssh-agent bash
ssh-add /path/to/privateKey

输入密码后我得到

Identity added: /path/to/privateKey (/path/to/privateKey)

然后,如果我尝试从命令行克隆 repo

git clone git@vgit01x.whatever.jp:biorganic/project.git

一切正常,我可以添加、暂存、提交、合并和一切。

现在我想通过 VS 代码来做所有事情。所以我首先点击了“克隆存储库”

然后当对话框弹出时(我选择了“从 URL 克隆”) 我粘贴了回购地址git@vgit01x.whatever.jp:biorganic/project.git

VSCode 尝试克隆 repo,但一段时间后我收到以下错误:

> git clone git@vgit01x.whatever.jp:biorganic/project.git /nexus/user/gitDev/folder/project-1 --progress
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我觉得这很奇怪,因为单击 VS 代码会生成一个在从命令行 (git clone git@vgit01x.whatever.jp:biorganic/project.git) 调用时有效的命令。

而且似乎 VS 代码确实以某种方式识别了远程仓库,因为我看到了使用 gitlens 扩展的分支和提交,如下所示:

但是,如果我点击顶部的图标,如下图:

它显示您没有登录任何帐户,我猜这是错误的原因。我怀疑这是因为该项目托管在 gitea,而不是 github。如果我尝试连接到 github 托管的 repo,我可以通过单击上面的顶部图标登录,然后我可以使用 gitlens 登录,这会将我重定向到 github 页面。

有谁知道这里出了什么问题/我需要在 VS 代码上进行哪些更改才能成功登录到远程仓库以跟踪我想要的更改?

【问题讨论】:

  • VScode 左下角,登录到你的 git 主机账户了吗?
  • 请查看我的编辑。看来 VS 代码现在已连接到远程仓库。但正如你所指出的,我似乎没有以某种方式登录
  • 好的,你必须根据你最后的图像登录,但首先确保你从VScode市场下载所有git扩展(下载后关闭vscode然后重新打开)并尝试登录
  • 哦,有很多扩展(我已经安装了 gitlens)。如果我点击我在问题中提到的图标我无法登录,我可以使用命令面板中的命令连接吗?

标签: git visual-studio-code


【解决方案1】:

VSCode SSH troubleshooting tips 确实提到:

如果您连接到 SSH 远程主机并且是:

  • 使用双重身份验证连接
  • 使用密码验证
  • 在 SSH 代理未运行或无法访问时使用带有密码的 SSH 密钥

那么 VS Code 应该会自动提示您输入所需的信息。
如果没有看到提示,请在 VS Code 中启用remote.SSH.showLoginTerminal 设置。
每当 VS Code 运行 SSH 命令时,此设置都会显示终端。
然后,您可以在终端出现时输入您的验证码、密码或密码。

为了进行测试,请尝试生成一个没有密码的单独 ssh 密钥,以排除任何 ssh 代理的副作用。

但要注意使用的 SSH URL:如果你的 ssh 密钥不是默认的 ~/.ssh/id_rsa,那么你的远程 URL 应该是:

gl:biorganic/project.git

带有 ~/.ssh/config 文件

Host gl
  Hostname vgit01x.whatever.jp
  User git
  IdentityFile ~/.ssh/mykey

(将 mykey 替换为本地生成的自定义密钥的名称,其公钥将注册到您的 vgit01x.whatever.jp 用户设置)

【讨论】:

    猜你喜欢
    • 2018-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    • 2022-11-02
    • 1970-01-01
    相关资源
    最近更新 更多