LibGit2Sharp-SSH "Failed to start SSH session: Unable to exchange encryption keys"

884 views Asked by At

I'm using the current version of LibGit2Sharp-SSH from https://github.com/leobuskin/libgit2sharp-ssh

I generated a SSH private and public key using OpenSSH. I set up an OpenSSH Server, and am able to use Git Bash to Clone/Push etc. using SSH.

I'm having difficulties Cloning a repository using the SSH protocol through LibGit2Sharp. I've went through all the similar questions and tried all the answers without any luck.

    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);
    }

I get a "Failed to start SSH session: Unable to exchange encryption keys" exception.

Has anyone had a similar experience or know what I could possibly be missing?

0

There are 0 answers