使用 libgit2sharp-SSH 对 SshUserKeyCredentials 进行身份验证时遇到一些问题:
var co = new CloneOptions();
co.CredentialsProvider = (_url, _user, _cred) => new SshUserKeyCredentials { PrivateKey="C:\\path\\to\\private_key" };
Repository.Clone("git@... .repository.git", path, co);
我发现 SshUserKeyCredentials 对象浏览源代码,所以我的第一个问题是是否可以使用此对象从 gitlab 部署基于密钥的结帐?
该对象似乎需要 PrivateKey、Username、PublicKey 和 Passphrase 的任意组合。我目前正在使用 PrivateKey。
我最终得到的错误:
{"Failed to start SSH session: Unable to exchange encryption keys"}
如果这种方式不应该工作,是否有另一种使用部署密钥以编程方式从 C# 环境管理 git 的方法?