本地管理多个sshkey的问题

需求

本机原先有一个 ssh key 用于 github 管理,现需要另外一个 key 来管理 openshift 上的应用。
由于某些原因将 .ssh/ 下文件全删了,然后 openshift 的 sshkey 生成成功。
现在需要重新为 github 生成一对密钥,即本机需要管理两对密钥。

生成第二个 ssh key

由于只有一个用户,所以 git 中的用户名和邮箱暂不修改。
注意:管理多个 sshkey 时,不能使用 –gobal 等全局的参数,而需要 –local 这样的参数。

1. 新建 SSH key

1
$ ssh-keygen -t rsa -f ~/.ssh/id_rsa.github -C "key for Github"

2. 将新生成的 ~/.ssh/id_rsa.github.pub 文件内容添加到 GitHub 后台

3. 新密钥添加到 SSH agent 中
因为默认只读取 id_rsa,为了让 SSH 识别新的私钥,需将其添加到 SSH agent 中:

1
$ ssh-add ~/.ssh/id_rsa.github

4. 新增 ssh 的配置文件,并修改权限
(如果存在则跳过)

1
2
$ touch ~/.ssh/config
$ chmod 600 ~/.ssh/config

5. 添加 config 文件内容

1
2
3
4
5
6
7
Host *.github.com
User username
IdentityFile ~/.ssh/id_rsa.github

Host *.openshift.com
User username
IdentityFile ~/.ssh/id_rsa

6. 验证

1
2
$ ssh -T git@github.com
Hi username! You've successfully authenticated, but GitHub does not provide shell access.

至此,完成。日后如需添加,则按照上述步骤生成key,并修改config文件即可。

参考链接:
多 github 帐号的 SSH key 切换
Github Help -SSH / Generating SSH keys