Tell me more ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

ssh has the -i option to tell it which private key file to use when authenticating:

-i identity_file
     Selects a file from which the identity (private key) for RSA or DSA
     authentication is read.  The default is ~/.ssh/identity for protocol ver-
     sion 1, and ~/.ssh/id_rsa and ~/.ssh/id_dsa for protocol version 2.  Iden-
     tity files may also be specified on a per-host basis in the configuration
     file.  It is possible to have multiple -i options (and multiple identities
     specified in configuration files).

Is there a similar way to tell git which private key file to use when on a system with multiple private keys in the .ssh directory?

share|improve this question

3 Answers

up vote 70 down vote accepted

In ~/.ssh/config, add:

Host gh
        Hostname github.com
        User git
        IdentityFile ~/.ssh/somekey

Now you can do git clone ssh://gh/username/repo.git.

share|improve this answer
1  
The file specified in IdentityFile is the private key, not the public key. The .pub extension you used in your example confused me, I think it will be more clear to use "IdentityFile ~/.ssh/gh_id_rsa" – Joaquin Cuenca Abela Apr 27 '11 at 9:17
@Joaquin Cuenca Abela: Answer edited. – Laurent Pireyn May 13 '11 at 16:19
What if you need to connect to the same host with different keys? – Quelltextfabrik Nov 30 '12 at 11:24
3  
@Quelltextfabrik - you can add another section with a different Host: nerderati.com/2011/03/… – Ben Challenor Dec 4 '12 at 14:17
1  
Awesome, thanks! – Quelltextfabrik Dec 4 '12 at 19:08

Write a script that calls ssh with the arguments you want, and put the filename of the script in $GIT_SSH. Or just put your configuration in ~/.ssh/config.

share|improve this answer
1  
That's a handy trick – Bryan Agee May 30 '12 at 17:13

You can also use ssh-ident, instead of creating your own ssh wrapper.

You can read more at: https://github.com/ccontavalli/ssh-ident

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.