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