首页 > 解决方案 > 使用带有 libgit2sharp 的 SSH 进行身份验证/通信时遇到问题

问题描述

使用 libgit2sharp 使用 SSH 身份验证将更改拉/推到远程存储库时遇到一些问题。这个远程存储库托管在 GitLab 中。

这是我正在使用的代码:

using (var repo = new Repository(repoDirectory))
{
    var remote = repo.Network.Remotes["origin"];
    var options = new PushOptions
    {
        CredentialsProvider = (url, user, cred) =>
        {
            var credentials = new SshUserKeyCredentials()
            {
                PrivateKey = @"c:\users\<username>\.ssh\id_rsa",
                PublicKey  = @"c:\users\<username>\.ssh\id_rsa.pub",
                Passphrase = string.Empty,
                Username   = "git"
            };
            return credentials;
        }
    };
    repo.Network.Push(remote, @"refs/heads/master", options);
}

我在 CredentialsProvider 委托中放置了一个断点,但它没有被执行。我得到的错误信息是这样的:

“无法启动 SSH 会话:无法交换加密密钥”

任何人都知道为什么我会收到此消息?我完全迷失在这里。

LibGit2Sharp v0.25.2、LibGit2Sharp-SSH v1.0.22

标签: c#libgit2sharplibgit2sharp-ssh

解决方案


推荐阅读