Can I create multiple ssh keys, and rename them to user friendly names so I know which key is for which website etc.
Is this safe?
e.g:
github_id_rsa
github_id_rsa.pub
..
...How will it know which key to check against when connecting?
On my computer now, when I look at known_hosts, they all seem to have the same key after the name of the host??
24 Answers
Yes you can have different ssh keys. There's very good documentation on the GitHub Help site at Help.GitHub - Multiple SSH Keys. Essentially you will be using ssh-add to add the extra keys so that the agent can utilize them. Then you set up the ssh hosts config so that any ssh connections to different domains will be looked up here and the appropriate key will be used. good luck!
3You can modify the file ~/.ssh/config to use different identity file for different servers. Edit the ~/.ssh/config in your favorite editor and add an entry that is appropriate for your situation like so:
Host *
IdentityFile ~/.ssh/id_rsa
Host *.github.*
IdentityFile ~/.ssh/github_id.rsa
Host *.someother.com
IdentityFile ~/.ssh/someother_id.rsaThe first part above sets the defaults for all hosts and the other sections overrides what should be used for each of the hosts matching the patterns. If you have a different username for each of the hosts, then you can add a User key followed by the username on the remote to the section.
6You can set up multiple ssh keys for any site having multiple user accounts
Below is the example I used to follow in my development for GitHub.com
Config file example
#Personal account Host github.com-<personal-account-name> HostName github.com User git IdentityFile ~/.ssh/id_rsa_personal IdentitiesOnly yes
#Organization account Host github.com-<organization-name> HostName github.com User git IdentityFile ~/.ssh/id_rsa_work IdentitiesOnly yesAt the time of adding a new origin
For Personal account
git remote add origin -<personal-account-name>:<personal-account-name>/<repo-name>.gitFor Organisation account
git remote add origin -<organization-name>:<organization-name>/<repo-name>.gitHope it helps.
1This worked for me
ssh-keygen -f ~/.ssh/<username>
ssh-add ~/.ssh/<username>
git clone <username>@bitbucket.org:myfancyteam/myfancyproject.gitFrom :