Multiple ssh keys for git

Ever need to contribute to a repository that isn't hosted at Github? Maybe it's a private Gitlab instance or maybe it's something at Assembla or Bit Bucket.

Whatever the host, if you don't want to re-authenticate to push updates, setting up access to a new remote host includes adding a new ssh key. Each time, I muddle through generating and adding a new .ssh key and telling the new host about it. That second part usually isn't hard but the process of generating a new key always slows me down. As such, I thought I'd put the process here as a note for future me and, who knows, maybe it will save a little time for someone down the line.

Steps for adding an ssh key for a new remote git instance, let's call it coconut:

  • generate a new ssh key:
    ssh-keygen -t rsa -C "you@emailhoster.com"
  • enter a file name whem prompted, include a path like: /Users/you/.ssh/coconut_rsa
  • enter a passphrase
  • update ~/.ssh/config so that ssh know which key to use for the new host, example entry for coconut:
  Host git.coconutfakehost.com
    HostName git.coconutfakehost.com
    User git
    IdentityFile /Users/you/.ssh/coconut_rsa
  • copy/paste ssh key to the web: pbcopy < ~/.ssh/coconut_rsa.pub
  • paste in the box in whatever website
  • git clone should work over ssh now...something like: git@git.coconutfakehost.com:repo-where-stuff-happens.git

Done!