背景:
工作中有时候需要添加两个以上的ssh-key。或者一个是公司的仓库,一个是Github。等这种场景就需要在本地配置两个不同的ssh-key并添加到代理中了。
默认配置第一个的ssh-key会在mac的 ~/.ssh 路径下生成 id_rsa_pub 和id_rsa两个文件。
如下图:
配置第二个的时候对于生成公钥和私钥的文件名就需要自定义了,否则就会覆盖上面的这两个默认文件名
配置
配置本地自定义key的名字
默认
cd 到本地.ssh目录下
cd ~/.ssh
生成一个ssh-key (后面填写的是你自己的邮箱账号)
ssh-keygen -t rsa -C "xxx@xxx.com"
指定文件
ssh-keygen -t rsa -C '你的邮箱' -f ~/.ssh/tiger_id_rsa
输入自定义key的文件名,我这里加的是id_rsa_github,这个名字可以自定义
设置密码
根据提示输入密码,这里输入的密码是需要记住的,每次通过ssh方式拉代码都需要输入该密码,可以和gitlab的密码一样,也可以直接两次回车,不输入密码。我这里习惯直接回车,跳过这个输密码的阶段
成功生成ssh-key文件
生成并配置ssh的config文件
# gitlab
Host gitlab.com
HostName gitlab.com
User **
IdentityFile ~/.ssh/id_rsa
# github
Host github.com # 如公司内网对应的自定义github域名
HostName github.com
User ** # 仓库上的用户名,就是你每个仓库前面的前缀
IdentityFile ~/.ssh/id_rsa_github #指定的rsa文件路径
打印并复制公钥并添加到git网站
cat id_rsa_github.pub
验证
ssh -T git@github.com //执行成功打印
// Hi XXX! You've successfully authenticated, but GITEE.COM does not provide shell access.
// Welcome to GutHub, @XXXXX!