使用 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