I´m kind of stuck with an SSH private key issue and LibGit2Sharp-Ssh.
I have a .Net/C# application that uses LibGit2Sharp-Ssh to clone a Git repository.
I need to use SSH (https with user/password is not an option) and I also have a valid key, which is already working e.g. with Teamcity.
My code looks like this:
CloneOptions options = new CloneOptions
{
Checkout = false,
CredentialsProvider = (url, user, cred) => new SshUserKeyCredentials()
{
PrivateKey = privateKey,
Passphrase = passphrase,
PublicKey = publicKey,
Username = "git"
}
};
var clone = LibGit2Sharp.Repository.Clone(remoteUrl, localPath, options);
privateKey
points to a private key file in "OpenSSH" format.
When Clone
is executed i get:
LibGit2Sharp.LibGit2SharpException: "Failed to authenticate SSH session: Invalid key data, not base64 encoded"
I've tried all of the private key formats I could create with PuttyGen, but I always get the same result.
What might be the issue or in what format do I need to create the private key file?
My OpenSSH-format key looks like (truncated):
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,27A4E70608469318
<Key-Data, like "sdhsdcQEHBg3uzfb...">
-----END RSA PRIVATE KEY-----
privateKey point to a private key file in "OpenSSH" format.
privateKey
needs to point to a key, not a path to a key. You need to read the key file and place the contents into a string
that you can pass to privateKey
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With