LibGit2Sharp SSH,无法交换加密密钥

问题描述 投票:0回答:1

尝试使用 SSH 构建一个克隆存储库(托管在 GOGS 中)的示例项目,但收到以下错误:

Failed to start SSH session: Unable to exchange encryption keys

我在 Windows 上,密钥是使用 ssh-keygen 生成的,并且我引用了以下 nuget 包

  • LibGit2Sharp 0.25.3
  • LibGit2Sharp.NativeBinaries 1.0.235
  • LibGit2Sharp-SSH 1.0.22
  • LibGit2Sharp-SSH.NativeBinaries 1.0.14

我们可以使用如下代码从测试位存储桶帐户中提取文件,但不能从 GOGS 存储库 URL 中提取文件(相同的密钥已上传到两个帐户)。

var co = new CloneOptions
{
        CredentialsProvider = (_url, _user, _cred) => new SshUserKeyCredentials()
        {
                PrivateKey = @"C:\Users\username\.ssh\keygen\gen",
                PublicKey = @"C:\Users\username\.ssh\keygen\gen.pub",
                Passphrase = string.Empty,
                Username = "git"

        },
};
Repository.Clone("ssh://git@<site_url>:443/Project/Project.git ", TestPath, co);

我还要补充一点,我们可以使用各种 git 客户端(git exe、tortoise git、gitkraken)从这两个 URL 进行克隆,不会出现任何问题。我们还可以使用 LibGit2Sharp 通过 https 使用用户名和密码进行连接。

到目前为止我尝试过的事情:

  1. 使用 ssh-keygen 生成新密钥
  2. 使用 puttygen > Conversions > Export OpenSSH 将私钥文件转换为 openssh
  3. 使用“openssl rsa -in key-out key.pem”将私钥转换为 PEM 格式
  4. 确保公钥是单行,从类型开始,然后是base64密钥,最后没有注释
libgit2sharp gogs libgit2sharp-ssh
1个回答
0
投票

我和你一样的错误,你解决了吗?你能帮我吗?

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.