我正在使用来自https://github.com/leobuskin/libgit2sharp-ssh的当前版本的 LibGit2Sharp-SSH
我使用 OpenSSH 生成了一个 SSH 私钥和公钥。我设置了一个 OpenSSH 服务器,并且能够使用 Git Bash 使用 SSH 进行克隆/推送等。
我在通过 LibGit2Sharp 使用 SSH 协议克隆存储库时遇到了困难。我已经解决了所有类似的问题,并尝试了所有答案,但没有任何运气。
public CloneOptions cloningSSHAuthentication(string username, string path_to_public_key_file, string path_to_private_key_file)
{
CloneOptions options = new CloneOptions();
SshUserKeyCredentials credentials = new SshUserKeyCredentials();
credentials.Username = username;
credentials.PublicKey = path_to_public_key_file;
credentials.PrivateKey = path_to_private_key_file;
credentials.Passphrase = "passphrase";
options.CredentialsProvider = new LibGit2Sharp.Handlers.CredentialsHandler((url, usernameFromUrl, types) => credentials);
return options;
}
public void CloneRepo(string remotePath, string localPath)
{
var sshDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".ssh");
var PublicKey = Path.Combine(sshDir, "id_rsa.pub");
var PrivateKey = Path.Combine(sshDir, "id_rsa");
CloneOptions options = cloningSSHAuthentication("UserName", PublicKey, PrivateKey);
Repository.Clone(remotePath, localPath, options);
}
我收到“无法启动 SSH 会话:无法交换加密密钥”异常。
有没有人有类似的经历或知道我可能会错过什么?