Multiple ssh keys are not working

OS Description: Ubuntu 14.04.3 LTS
ssh: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3, OpenSSL 1.0.1f 6 Jan 2014

I am unable to use multiple ssh key for gitlab. The error I am getting is

GitLab: The project you were looking for could not be found.
fatal: Could not read from remote repository.

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

I am pretty much sure that I did everything right
This is my config file

Host work gitlab.com
    Hostname gitlab.com
    IdentityFile ~/.ssh/ida_rsa
    User git

Host integrate gitlab.com
    Hostname gitlab.com
    IdentityFile ~/.ssh/ida_rsa_personal
    User git

The keys are added automatically in ssh-agent, but to make sure I also added the key manually

$ ssh-add -l
2048 e7:08:d6:8c:00:28:31:f9:3f:21:4a:0f:4e:1e:ee:20 id_rsa (RSA)
2048 ff:22:f6:90:2b:7c:9f:ed:45:41:df:79:06:de:fe:81 id_rsa_personal (RSA)

My ssh-agent is also running

$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-uTC6tA5HMt1x/agent.4899; export SSH_AUTH_SOCK;
SSH_AGENT_PID=4900; export SSH_AGENT_PID;
echo Agent pid 4900;

Permissions of ssh key

-rw-------  1 yogi yogi  1679 jun 25 15:38 id_rsa
-rw-------  1 yogi yogi  1679 ago 25 10:53 id_rsa_personal
-rw-r--r--  1 yogi yogi   404 ago 25 10:53 id_rsa_personal.pub
-rw-r--r--  1 yogi yogi   391 jun 25 15:41 id_rsa.pub

I added my ssh public key on gitlab.

Could any one please tell me what I am missing ?

Note :-
I noticed that out of my two ssh keys, the ssh key which is on top( id_rsa – e7:08….) works fine.

$ ssh-add -l
**2048 e7:08:d6:8c:00:28:31:f9:3f:21:4a:0f:4e:1e:ee:20 id_rsa (RSA)**
2048 ff:22:f6:90:2b:7c:9f:ed:45:41:df:79:06:de:fe:81 id_rsa_personal (RSA)

If I add id_rsa_personal(ff:22..) after id_rsa, than id_rsa_personal starts working fine and id_rsa stops working.

$ ssh-add -l
**2048 ff:22:f6:90:2b:7c:9f:ed:45:41:df:79:06:de:fe:81 id_rsa_personal (RSA)**
2048 e7:08:d6:8c:00:28:31:f9:3f:21:4a:0f:4e:1e:ee:20 id_rsa (RSA)

I think , ssh-agent is unable to iterate through keys. It only reads first key and stops.
Is this a bug in openssh ? If yes, any workaround ?

Thanks

  • mirroring a self-hosted git repository to github.com (auth failures)
  • Jenkins execute shell scripts with parameters on remote machine
  • Eclipse git and ssh-agent
  • Vagrant shell and ansible provisioning fail with bitbucket
  • Getting ssh-agent to work with git run from windows command shell
  • GIT over SSH in Ansible hangs, eventhough ssh-agent forwarding is set up
  • ssh-agent doesn't work / save me from typing passphrase for git
  • github ssh-agent timeout mediatemple
  • One Solution collect form web for “Multiple ssh keys are not working”

    You need to have ~/.ssh/config file

    Inside file

    # Default GitHub user
    Host github.com
        HostName github.com
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/personalid
    
    # Work user account
    Host bitbucket.org
        HostName bitbucket.org
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/workid
    

    Details can be found in the link below
    https://confluence.atlassian.com/bitbucket/configure-multiple-ssh-identities-for-gitbash-mac-osx-linux-271943168.html

    If the domain is same, use different Host

    Host work.gitlab.com
        HostName gitlab.com
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa.work
    
    Host home.gitlab.com
        HostName gitlab.com
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_rsa.home
    

    Clear the cache

    ssh-add -D
    

    Add all ssh keys

    ssh-add ~/.ssh/id_rsa.work
    ssh-add ~/.ssh/id_rsa.home
    

    Also set your repos’ url in (.git/config) accordingly as given:

    url = git@work.gitlab.com:xxxxxxxxxx.git
    url = git@home.gitlab.com:yyyyyyyyy.git 
    

    If your ssh config file is as what I suggested.

    Git Baby is a git and github fan, let's start git clone.