问题来源:为什么要配置多个ssh key?
平时开发中,我们需要将代码拖放到github、码云(gitee.com)等平台,代码的pull push需要权限,有两种方式https或者添加ssh key公钥,当然我们只说ssh,有时候一个人可能同时对多个代码托管平台或者多个项目同时操作,ssh key被使用过一次之后就不能再次添加到别的项目中,这时候就需要对不同项目配置对应的ssh key了。
1.生成公钥, 邮箱账号随便填
ssh-keygen -t rsa -C "xxx@email.com"
2.设置名称为rsa文件名称,不写默认是id_rsa.xx
Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa): id_rsa_test
打开.ssh文件夹可以发现生成了两个新的文件,id_rsa_test和id_rsa_test.pub,把公钥(pub结尾的)添加到对应平台账户中。
3.写config文件
最关键的,我们需要在.ssh文件夹下新建个config文件(相当于一个映射文件)
Host gitee1.com (相当于一个别名,远程仓库地址的域名别名)
HostName gitee.com (平台域名)
User aaa@email.cpm (仓库所属的账号)
PreferredAuthentications publickey(固定的)
IdentityFile ~/.ssh/rsa_my (对应使用的ssh key)
Host aa
HostName gitee.com
User aaa@email.cpm
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_test
4.测试是否能够通信
ssh -T gitee1.com
ssh -T aa
如果成功Hi xxx! You've successfully authenticated, xxxx
在以后使用时git clone gitee1.com:janjanjan/test.git 中的域名需要使用config中配置的别名,这样引导其选择对应的公钥。如果不使用别名,默认会选择id_rsa.pub。
文章目的是记录下来便于自己看。本次文章写得有点晚,有些细节忘记了,若有错误,请指出。