3

I have a Github account with multiple projects.

I have cloned these projects to my windows 10 computer using ssh key.

some time later, it appear my ssh keys were compromise so i delete my ssh on Github and locally, then regenerate new ones :

  • 4096 bits
  • rsa2
  • saved the pub as ~/.ssh/git_id_rsa.pub
  • add the pub key to my Github ssh keys
  • saved the priv as ~/.ssh/git/git_id_rsa.ppk
  • converted to Openssh format as ~/.ssh/git_id_rsa

the fact is I want different ssh keys for my different web tools (one for GitHub, one for DigitalOcean, one for OVH cloud, etc...) and I want to specify witch key to use when connecting to each host. thats why I change the default name for the ssh generated with PuttyGen (and converted with the same).

I don't have passphrase on the git_id_rsa.ppk (nor git_id_rsa) keys, as it seems that GitHub dont like them (saw long time ago).

I've configure my (projecytdir)/.git/config like bellow :

[remote "origin"]
    url = git@github.com:hdGuild/JenkinsServerOnDO.git
    fetch = +refs/heads/*:refs/remotes/origin/*
    identityfile= ~/.ssh/git_id_rsa

But when I try a Git Pull, I've got the following error :

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Following the following answers I've created the ~/.ssh/config file with the following (using OpenSSH key for GitHub), and it works :

Host github.com
IdentityFile ~/.ssh/git_id_rsa

The fact is that if I need the ~/.ssh/config file, why would I need to configure my local git with (projecytdir)/.git/config as I describe it above ?

I would like to configure my local git to use the right ssh key for Github, without having to explain it in my ~/.ssh/config file.

I'm sure it is (again) a configuration problem and I miss something somewhere, but I can't find where.

Please help :)

thank-you

1 Answers1

2

Okay, As previously, I answer my own question :D

After some more research, I found this post that explain how to specify in Git local config file, the ssh key to use for git sh connection.

The command is simply, in the above explained case, the following while in project directory :

git config core.sshCommand "ssh -i ~/.ssh/git_id_rsa -F /dev/null"

This way, the git_id-rsa will be used by git for ssh connections on this particular project (as it is a local configuration). Thank-you for reading.