同一台电脑管理多个SSH key

SSH key生成

ssh key生成

1
ssh-keygen -t rsa -C "[email protected]" 

此时会提示保存key的名字及路径,我们只需要自定义key的名字(路径)即可。

1
Enter file in which to save the key (/Users/caichenghan/.ssh/id_rsa): 

填写自定义路径

1
/Users/caichenghan/.ssh/id_rsa_github 

输入密码生成 ssh key ,可直接按Enter进入生成。

查看生成的ssh key

1
2
cd /Users/caichenghan/.ssh
ls

目录下会多出2个文件,分别为 id_rsa_githubid_rsa_github.pub ,前者为私钥,后者为公钥,我们只需要把公钥上传到github账户的公钥管理中即可。

我们还可以使用Finder查看该路径:Finder->右键->前往文件夹-> ~/.ssh

查看公钥

1
cat ~/.ssh/id_rsa_github.pub 

可查看名为 id_rsa_github.pub 的公钥,将其复制下来。

公钥管理

打开Github或者自己的git管理页面,在个人中心找到公钥管理,添加制作的公钥,保存。

ssh key 配置文件制作

配置文件制作

1
vim ~/.ssh/config 

配置 github 的ssh key

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github

# oschina
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitee

# 其它
...

其中 Host 为站点; HostName 为站点名; PreferredAuthentications 为优先使用公钥连接; IdentityFile ,私钥路径。

如果站点为 ip地址 ,则用 ip地址 代替 域名 即可。

账户验证

1
ssh -T [email protected] 

格式为git@域名

1
Hi xxx! You've successfully ... 

配置成功

如果有如下提示

1
2
3
The authenticity of host 'github.com (52.74.223.119)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?

键入yes即可。

如果仍旧报错,可删除 ~/.ssh 目录下的 known_host 文件里对应的站点公钥信息,然后重新账户验证。

同理,我们还可以继续添加其它账号的 ssh key ,这样就可以同一台电脑,使用多个 ssh key 免密码的git操作了。