管理本地多个SSH Key

有的时候,不仅Github使用ssh key,工作项目或者其他平台可能也需要使用ssh key来认证,如果每次都覆盖了原来的id_rsa文件,那么之前的认证就会失效。这个问题我们可以通过在~/.ssh目录下增加config文件来解决。

下面以配置Github的ssh key为例。

1. 生成ssh key时同时指定保存的文件名

1
> ssh-keygen -t rsa -f ~/.ssh/id_rsa.github -C "邮箱"

上面的id_rsa.github就是我们指定的文件名,这时~/.ssh目录下会多出id_rsa.githubid_rsa.github两个文件,id_rsa.github里保存的就是我们要使用的key。

2. 配置ssh config文件,如果文件不存在就创建

1
2
3
4
5
6
7
8
> vim ~/.ssh/config

# 新增以下内容
Host github.com
Hostname ssh.github.com
Port 443
User 用户名
IdentityFile ~/.ssh/id_rsa.github

3. 测试ssh 是否配置成功,以Github为例

1
> ssh -T git@github.com

如果配置成功,则会显示:
Hi username! You’ve successfully authenticated, but GitHub does not provide shell access.