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.
Instead of creating your private key with PuttyGen (ppk keys), Use PuttyGen to load said ppk file, and save it as OpenSSH file (id_rsa, id_rsa.pub)
Or, as I described here, use Git for Windows PATH to access ssh-keygen, and create one directly with the right format:
ssh-keygen -t rsa -C "key for my Git repo server" -q -P ""
That´s how my OpenSSH-Key looks like (key data truncated):
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,27A4E70608469318
<Key-Data, like "sdhsdcQEHBg3uzfb...">
-----END RSA PRIVATE KEY-----
Is there some way i can verify tha exported key?
来源:https://stackoverflow.com/questions/47463207/which-format-should-be-ssh-private-key-for-libgit2-libgit2sharp-ssh