使用SSH与libgit2sharp进行身份验证/通信时遇到问题

时间:2018-07-05 18:52:43

标签: c# libgit2sharp 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

0 个答案:

没有答案