3

我正在使用来自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 会话:无法交换加密密钥”异常。

有没有人有类似的经历或知道我可能会错过什么?

4

0 回答 0