背景
个人电脑因工作需要需连接公司gitlab,但是生成的ssh已经连接了GitHub,并且工作的邮箱和个人邮箱也不是一致的,此时需要对不同的平台进行不同的配置。
1.生成ssh key
打开git bash 输入以下命令
ssh-keygen -t rsa -C "github-user1@163.com"
第一个 ssh key 使用默认名字,三下回车,完成第一个默认的 ssh key。
在当前用户目录的 .ssh 目录下会生成 id_rsa 私钥文件和 id_rsa.pub 公钥文件,将 id_rsa.pub 公钥中的内容添加至 GitHub 云端中。
然后在 git bash 中输入以下命令测试该用户的 SSH 密钥是否有效:
ssh -T git@github.com
注明:该命令仅限于文件名为默认 id_rsa 的密钥
2.生成第二个ssh key
git bash 中输入以下命令,生成 gitlab的密钥,此时第二个 SSH Key 不能再使用默认的文件名id_rsa,否则会覆盖之前的密钥文件:
ssh-keygen -t rsa -f ~/.ssh/id_rsa_gitlab -C "gitlab@qq.com"
同样将生成的id_rsa_gitlab.pub内容添加至gitlab云端中。
测试
ssh -T git@gitlab.com -i ~/.ssh/id_rsa_gitlab
3.配置config文件
.ssh 目录下创建一个 config 文本文件,每个账号配置一个Host节点,主要配置项说明
Host # 主机别名
HostName # 服务器真实地址
IdentityFile # 私钥文件路径
PreferredAuthentications # 认证方式
User # 用户名
config 文件内容:
# ~/.ssh/config 配置多个git的ssh-key
# 第一个默认的SSH Key
Host github.com
HostName github.com
IdentityFile C:\\Users\\xx\\.ssh\\id_rsa
PreferredAuthentications publickey
# 第二个SSH Key
Host gitlab.com
HostName gitlab.com
IdentityFile C:\\Users\\xx\\.ssh\\id_rsa_gitlab
PreferredAuthentications publickey
4.为各自仓库配置不同的用户名和邮箱
git config --local user.name 'xx' && git config --local user.email 'xx@qq.com'