Git高级之配置多个SSH key
最近我们在代码托管平台上使用SSH的方式下拉代码,通常是用一个ssh key来拉取所有托管平台的代码,如码云,GitHub、GitLab等,但是总用一个不是太好。会有安全风险,这就需要为每个托管平台设置单独的SSH-key
下面我们下简单介绍一下如何创建多个SSH Key并且使用下拉代码。
第一步、生成SSH-Key
Windows建议使用Git bash操作
Linux、mac用户使用默认终端即可
- 生成第一个SSH-Key
$ ssh-keygen -t rsa -C "你的邮箱” -f ~/.ssh/id_rsa_one
- 生成第二个SSH-Key
$ ssh-keygen -t rsa -C ""你的邮箱”” -f ~/.ssh/id_rsa_two
创建完成之后 我们在.ssh的根目录下可以看到文件
- WindowsSSH 目录
C:\Users\Administrator\.ssh
- Linux、macSSH 目录
直接 cd ~/.ssh 即可进入
此时,.ssh目录下应该有4个文件:id_rsa_one和
id_rsa_one.pub,id_rsa_two和id_rsa_two
.pub
第二步、添加私钥
在终端中执行
ssh-add ~/.ssh/id_rsa_one
ssh-add ~/.ssh/id_rsa_two
如果执行ssh-add时提示 Could not open a connection to your authentication agent
可以先执行命令:
ssh-agent bash
然后再重新运行ssh-add命令即可
添加成功会出现提示:
Identity added 等字样
第三步、查看私钥列表是否存在
ssh-add -l
当我们可以看到2条私钥的时候就证明安装成功了,别急还没有完
第四步 修改配置文件config
若.ssh目录(就是私钥所在的文件夹)下无config文件,那么创建
touch config
打开 config 文件 配置如下格式 这里要注意 IdentityFile 后面对应的是 本地ssh key文件路径
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_one
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_two
第五步 用ssh命令测试验证
ssh -T git@gitee.com
ssh -T git@github.com
验证通过后即可愉快的clone代码了
附:
清空私钥列表
$ ssh-add -D